想要为我的应用程序编写一些测试,我偶然发现了Android testing pages。经过相当长时间的阅读后,很快就会发现,我唯一能从中获得的信息是关于如何测试UI /活动的信息。我真正想要的是只用ant test
来测试我的逻辑,最好甚至不涉及该设备。在这个阶段我应该提到我没有使用Eclipse,并且令人遗憾的是,Android上99%的Java资源都假设人们这样做。单元测试Android应用程序逻辑
在任何情况下,试图让所有东西都运行,我尽可能地与教程一起玩。它要求tests
目录与src
的级别相同。当然,即使他们的每一页都意味着测试项目是一个完全独立的实体。在顶层项目目录中,我运行了 android create test-project -m /path/to/my/project/ -n MyProjectTest -p tests
。值得一提的是,他们说他们希望事情如何成立,这与他们的说法很不一致as seen on this question。访问该目录,我发现了默认的测试文件。这是问题的起点。
我的理解是,测试的过程如下:构建应用程序,安装;去测试,建立测试,安装;使用ant test
从测试目录运行测试,或者使用adb shell am instrument
直接启动测试。这工作得很好。然而,我不想测试活动,只是逻辑(不访问任何视图/活动)。
更改默认的测试延长AndroidTestClass
似乎有工作了一段时间。测试正在运行,但有一些警告:清洁tests
与ant clean
也清理了项目目录(../tests
),所以它花了永远在一个干净的环境中建立测试(这是必要的,因为ant debug
似乎可怕的检测变化),但它的工作和我很高兴。
多试验几次后,我得到java.lang.VerifyError
我只测试类。谷歌搜索和堆叠周围,它归结为外部库或错误的类路径有问题。我没有使用任何外部.jar
因此这可能是我的路径。
在任何情况下,这里是我的问题: 什么是The Proper Way™在Android应用程序中使用JUnit单元测试逻辑?我根本找不到任何资源:所有资源都是用于测试UI部件或用于单元测试普通应用程序。
我单位如何测试我的逻辑只?这甚至不需要设备运行,因为我不需要使用Android的任何部分。我在哪里放置测试?我需要更改什么,以便在我的项目目录中运行ant test
然后运行这些?