繁体   English   中英

Android测试框架的说明

[英]Android Testing Frameworks clarification

尝试学习仪器测试方案。 在浏览有关ActivityInstrumentationTestCase2的相关文档时,我了解到我们可以将ActivityInstrumentationTestCase2Espresso结合使用来编写所谓的“功能”测试。 或者至少是我从相关文档中了解的内容。

但是我碰到了一个叫做ActivityUnitTestCaseServiceTestCase东西,我以前从未听说过。 试图弄清楚这一点使我陷入了疯狂的追逐之中,而现在我却在这里失去了很多关于整个Android测试范例的说法。

  1. 从较高的角度考虑,Android测试大致分为两个阶段: Unit testingfunctional testing 出于以下,属于其中。

    JUnitJUnit4TestCaseAndroidTestCaseActivityInstrumentationTestCase2ServiceTestCaseApplicationTestCaseAndroidTestRunnerAndroidJUnitRunnerAndroidJUnit4

  2. 什么时候应该使用?

  3. 是否执行任何与实际单元测试有关的工作(我的意思是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/

Android测试框架

Robolectric与Android测试框架

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM