我应该使用Android Instrumentation来编写单元测试吗?

时间:2014-10-22 08:53:40

标签: android unit-testing android-testing

我已经阅读了一些关于Android中的单元测试的文章,包括官方文档并编写了一些演示文稿,它复杂而且速度慢,因为它必须在设备或模拟器上运行。我应该继续使用它还是找另一种选择?

3 个答案:

答案 0 :(得分:0)

通常应在目标设备上运行一个好的测试。这就是为什么我的答案是:是的你应该继续使用它。如果你在模拟器上进行测试或类似的东西,可能会有一些小的差异会导致一些不同的行为,而不是在真实设备上(特别是如果你使用一些硬件组件)。 如果您使用真实设备,那么测试运行的速度也比模拟器更快。

答案 1 :(得分:0)

我的替代方案如下:

我已将我的Android应用重构为

  • app(gui使用libs),
  • android-independant-lib(service-interfaces,dto-s,没有数据库绑定的businesslogic)
  • android-dependent-lib(android特定实现的服务接口和数据库绑定)

对于android-independant-lib我创建了" normal"的junit检验

对于特定于Android的部分,我目前没有自动测试。

答案 2 :(得分:0)

您正在寻找Robolectric

  

Robolectric是一个单元测试框架,用于解析Android SDK jar,因此您可以测试Android应用程序的开发。测试在几秒钟内在工作站上的JVM内运行。

尚未完成(例如,不支持支持库操作栏),但无论如何它都会为您节省大量时间。此外,您可以通过自己开发shadows来添加缺少的内容。