2011-05-19 154 views
2

我是一个很长时间的Java开发人员,拥有多年的Java EE,Ant,Maven,单元测试,嘲笑等等。我目前使用gradle构建android应用程序,并正在研究单元测试他们。这让我把头发撕掉了!试图了解Android测试

我的阅读表明要测试一个应用程序,我必须在测试目录中创建另一个应用程序。但我不确定这个嵌入式应用程序如何看到主要的应用程序类。我认为谷歌提出这个是因为与不同的清单有关。我不知道为什么。

没有做这个嵌入式应用系统,我已经能够通过在APK中包含带有主类的测试类来运行单元测试,将测试声明添加到清单,部署它并运行测试运行器。但我不想编译测试类与应用程序类,并包括所有的依赖关系,所以这不是一个真正的选择,我不确定更改对清单的影响,因为我找不到有关效果的任何文档。

这些都不是理解遵循建筑的maven系统的gradle。另外请注意,Android方式似乎是嵌入式子项目(测试)依赖于主父项目,这与Gradle和Maven完全相反。

另一个选择似乎是独立的测试项目,以便它完全在应用程序项目之外。但是真的,我想用一个类似的约定来做maven,并且简单地在单独的目录中进行测试,以及测试资源中的清单。

有没有人设法在运行单元测试的模拟器上测试目录结构等更多的maven?

回答

1

您是否必须在模拟器中运行单元测试?这不是太慢吗?我一直在使用robolectric(http://pivotal.github.com/robolectric/),它可以创建类似于嘲笑的阴影物体。我使用progaurd(http://proguard.sourceforge.net/)去除发布版本的测试。

+0

我很快看到了roboletric,但我更愿意尽可能靠近设备运行测试。特别是我感兴趣的测试是整合/功能/ BDD测试。单位我可以作为纯粹的JUnits运行。 – drekka 2011-05-19 23:57:48

2

您可以尝试Robotium。它为更好的测试用例提供了许多功能。你可以看看它here