【发布时间】:2015-02-27 09:14:10
【问题描述】:
我正在尝试接受 Android Studio 的新单元测试功能。
我已按照http://tools.android.com/tech-docs/unit-testing-support 上的说明进行操作。那里的描述明确提到了“方法...未模拟”错误,并建议将以下内容放入build.gradle:
android {
// ...
testOptions {
unitTests.returnDefaultValues = true
}
}
这适用于从命令行启动时运行的测试
gradlew test --continue
但当我通过右键单击从 Android Studio 运行测试类时 -> 运行。这样,我又得到了同样的错误:
java.lang.RuntimeException: Method setUp in android.test.AndroidTestCase not mocked. See https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support for details.
at android.test.AndroidTestCase.setUp(AndroidTestCase.java)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
关于如何解决这个问题的任何想法?
编辑:测试类的内容并不重要,因为测试的设置失败,我尝试了最简单的类:
public class ContactFormToolTest extends AndroidTestCase {
public void testSOmething(){
assertEquals(false, true);
}
}
也试过覆盖setUp,没有区别。
【问题讨论】:
-
你可以添加你的测试类的代码吗?
-
查看有问题的编辑。
-
我有一个非常相似的输出,通过这种方式解决:使用 MainActivity 创建一个全新的 android 项目。打开主活动。将光标放在类定义中的“MainActivity”上。右键单击并选择 GoTo => Test。使用建议的参数创建一个新的测试文件。尝试运行一个简单的测试。如果这可行,请将您的所有文件复制到这个新项目中。丑陋,但它对我有用。猜猜我错过了一些小设置。
-
如果设置失败,是否可以添加设置代码?
-
它没有失败,它甚至没有被执行。当 setUp 为空时也会发生同样的情况。
标签: android unit-testing android-studio