[英]Android Testing Frameworks clarification
尝试学习仪器测试方案。 在浏览有关ActivityInstrumentationTestCase2
的相关文档时,我了解到我们可以将ActivityInstrumentationTestCase2
与Espresso
结合使用来编写所谓的“功能”测试。 或者至少是我从相关文档中了解的内容。
但是我碰到了一个叫做ActivityUnitTestCase
和ServiceTestCase
东西,我以前从未听说过。 试图弄清楚这一点使我陷入了疯狂的追逐之中,而现在我却在这里失去了很多关于整个Android测试范例的说法。
从较高的角度考虑,Android测试大致分为两个阶段: Unit testing
和functional testing
。 出于以下,属于其中。
JUnit
, JUnit4
, TestCase
, AndroidTestCase
, ActivityInstrumentationTestCase2
, ServiceTestCase
, ApplicationTestCase
, AndroidTestRunner
, AndroidJUnitRunner
, AndroidJUnit4
什么时候应该使用?
是否执行任何与实际单元测试有关的工作(我的意思是POJO测试)。 我之所以这样问,是因为我注意到一些教程链接,其中样本测试用例扩展了JUnit4
/ TestCase
,仍然被称为单元测试,而下面的链接之一根本没有扩展任何内容,并且仍然可以用作简单的POJO
测试用例。 这就提出了一个问题,即JUnit4
和简单的POJO
测试类之间到底有什么区别。
到目前为止,我检查过的参考文献:
http://www.vogella.com/tutorials/AndroidTesting/article.html#androidtesting_creatingtestfolders
https://shaun.church/unit-testing-java-classes-in-android-studio/
http://developer.android.com/tools/testing/testing_android.html
任何想法,提示大加赞赏。 谢谢!
什么时候应该使用?
您列出的大多数内容已被弃用。 使用AndroidJUnitRunner
是唯一积极用于新开发的项目。
是否与实际单元测试有关(我的意思是POJO测试)
如今,用Android术语来说,“单元测试”的意思是“在开发机器或CI服务器的JVM上运行JUnit4测试(可能带有模拟框架)”。 为此,使用了JUnit4以及Mockito,Robolectric等。
将其与“仪器测试”进行对比,这意味着“在Android设备或仿真器中运行JUnit4测试(可能使用Espresso和/或UiAutomator)”。 JUnit4仍在这里使用,在这里您可以访问常规的Android SDK。 UiAutomator用于集成测试(App A是否成功启动App B的活动?)。
请记住,“单元测试”和“仪器测试”之间的这种特殊划分是相当新的。 您所读的早于2015年中期的材料可能会互换使用这些术语,因为我们对现在所谓的单元测试没有官方支持(尽管在此之前,许多开发人员也为此目的使用了Robolectric)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.