为了为我的应用程序编写一些测试,我偶然发现了Android 测试页面。经过相当长的阅读后,我很快就发现我唯一能从中得到的就是关于如何测试 UI/Activity 的信息。我真正想要的是简单地测试我的逻辑的方法ant test
,最好甚至不涉及设备。在这个阶段我应该提一下,我没有使用 Eclipse,而且令人遗憾的是,Android 上 99% 的 Java 资源都假设人们会这样做。
无论如何,为了让任何东西都运行起来,我尽可能多地按照教程进行操作。它要求tests
在与src
. 当然,即使他们的其他页面都暗示测试项目是一个完全独立的实体。在顶级项目目录中,我运行了
android create test-project -m /path/to/my/project/ -n MyProjectTest -p tests
. 值得一提的是,他们与在这个问题上看到的他们希望如何设置事物不一致。访问该目录,我发现了默认的测试文件。这是问题开始的地方。
据我了解,测试如下:构建应用程序,安装;去测试,构建测试,安装;使用从测试目录运行测试ant test
或直接使用启动它们adb shell am instrument
。这工作得很好。但是,我不想测试活动,而只是测试逻辑(不访问任何视图/活动)。
将默认测试更改为扩展AndroidTestClass
似乎有一段时间了。测试正在运行,但有一些警告:清理tests
项目目录ant clean
(../tests
ant debug
再做几次测试,我就java.lang.VerifyError
上了我唯一的测试课。谷歌搜索和堆叠,它归结为外部库有问题或我的类路径有问题。我没有使用任何 external .jar
s 所以这可能是我的路径。
无论如何,这是我的问题:使用 JUnit 在 Android 应用程序中对逻辑进行单元测试的正确方法是什么?我根本找不到与此相关的任何资源:所有资源要么用于测试 UI 部分,要么用于对普通应用程序进行单元测试。
如何仅对我的逻辑进行单元测试?考虑到我不需要使用 Android 的任何部分,这甚至不需要设备运行。我在哪里进行测试?我需要更改什么以便ant test
在我的项目目录中运行然后运行这些?