Android单元测试没有被 mock

标签 android unit-testing junit

我遵循了本指南 https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support 但我被这个错误困住了:

junit.framework.AssertionFailedError: Exception in constructor: testSaveJson (java.lang.RuntimeException: Method put in org.json.JSONObject not mocked. See https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support for details.

我按照指南所说的那样通过 Gradle 构建进行了修改,但没有任何区别

 testOptions { 
    unitTests.returnDefaultValues = true
  }

最佳答案

JSON 与 Android SDK bundle 在一起,因此您只会遇到一个 stub 。你可以拉入一个 JSON jar,它会提供真实的对象来使用。

为此,您需要将其添加到您的 build.gradle:

testImplementation 'org.json:json:20140107'

或者,您可以下载并包含该 jar。

testCompile files('libs/json.jar')

请注意,最新版本的 JSON 是为 Java 8 构建的,因此您需要获取 20140107 您可能还需要清理和重建项目。

关于Android单元测试没有被 mock ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29402155/

相关文章:

android - 如何在 Android 上使用 timeLeft 恢复倒计时?

android - 您如何检测您的 Activity 是否由于您创建的 PendingIntent 而处于 onPaused 状态?

database - 单元测试 SQL 脚本

ruby - 如何干燥在多个上下文中重复的测试用例?

java - cucumber 与朱尼特

java - 错误 : incompatible types: <anonymous Observer<AverageBudget>> cannot be converted to Observer<? super 列表<平均预算>>

java - 如何对 JSON 解析进行单元测试

unit-testing - Haskell 异常和单元测试

spring - 如何为特定的@Test指定SpringClassRule/SpringMethodRule的行为?

java - 生成 JUnit 测试用例的 XML 报告