Android的单元测试用例自动化:Robolectric库VS Android的测试框架(Andr

2019-08-17 00:54发布

想知道哪一个是更好的选择,编写单元测试用例for Android应用程序和库:使用Robolectric库或与Android测试框架坚持。 我想运行测试套件,在命令行,并希望它是独立的需要配置仿真器或让附有构建机器设备的。 是否有人对你运行这两种或更好的东西进行比较分析? 你的经验将是很大的帮助我来决定的更好的解决方案。

Answer 1:

我用一个分层系统,在这里我更喜欢较早层在可能的情况:

  1. 纯单元测试。 我尽量让尽可能多的代码尽可能完全独立的Android的API,然后用它可以在任何JVM上运行“纯粹”的单元测试。 这些测试是最快的,它有助于保持一个没有必要是Android的具体移植的代码。
  2. Robolectric支持的单元测试。 当我的代码只有在Android的API小的依赖性,可以通过Robolectric阴影满足,我Robolectric测试。 有比较纯的测试多一点准备时间Robolectric,但它仍然比开始/模拟器上运行速度更快。
  3. Android框架的测试。 凡Robolectric不剪 - 要么是因为不存在阴影,或者是因为我大量使用Android的API(因此要测试对真实的东西) - 我编写与模拟器/设备上运行测试默认的框架。

该层的点是让事情尽可能的简单,这使全套更快,有助于促进更干净的代码。



Answer 2:

我曾在这两个,我发现了什么是: -

1)Robolectric不支持API 19,它提它的文档- http://robolectric.org/eclipse-quick-start/ 。 这是它的一个很大的缺点。

2)Robolectric在JVM不DVM运行。 因此,我们不能检测到在那个特定的时间GPS是能够在设备或没有等我们只能通过我们的预判值吧。

3)在Robolectric代码编写复杂的JUnit比专门为片段也有很多的复杂性和问题。

4)Robolectric需要外部的jar和配置和JUnit测试,我们不需要任何外部库。

5)Robolectric更快,因为它运行在JVM但这有缺点太多,我们看不到我们的设备,什么屏幕代码执行的UI。

对于Android,我喜欢JUnit测试。



文章来源: Android unit test case automation: Robolectric library vs Android Testing framework