如何在Android代码上执行Java测试

时间:2011-08-31 00:56:39

标签: java android intellij-idea

我想执行一个Java类来测试Android应用程序的功能(从Java模块)到读/写数据到文件。如果我在Android模块中执行,我会得到Stub!错误(Android SDK)。如果我安装或模拟,它很慢(我只测试一个特定的部分)。

如果我将Android模块作为模块依赖项包含,IntelliJ仍会构建Android文件,我会得到一个Stub!执行期间出错。但是,如果我只包含classes目录并将它们标记为提供,则在Log时会出现错误。被称为。

有没有办法在Android应用程序的组件上运行简单的Java测试(不使用Activity等),使用Java SDK而不是构建Android特定文件?

3 个答案:

答案 0 :(得分:0)

您需要检测测试并在设备(或模拟器)上运行它们,或使用Roboelectric,它提供SDK jar存根类的替换。

答案 1 :(得分:0)

似乎在以后的IntelliJ 10版本中修复 - 无法重现问题

答案 2 :(得分:-1)

虽然您可以使用Robolectric或其他技术在主机JVM上进行测试,但值得注意的是,这只应在开发周期中用作解决方法,以避免长时间等待测试在模拟器或设备上运行,并且从不替换真实平台上的测试,因为 Dalvik JavaSE 运行时之间的不兼容性可能会影响测试的准确性。

最新设备,引入更强大的CPU,可以在大多数情况下以非常合理的速度运行测试,因此可能不需要寻找其他解决方案。