AndroidJUnitRunner和AndroidJunit4有什么区别?

pul*_*ion 10 junit android android-instrumentation

我是Android测试世界的新手,单元测试的样本提到了AndroidJunit4跑步者的使用.我偶然发现了一位名叫的跑步者AndroidJUnitRunner.现在,我看到了这两个类的文档,乍一看,似乎差异在于AndroidJunit4支持JUnit4,特别是在AndroidJUnitRunner支持JUnit3和JUnit4时,但是如果你研究类结构和可用的方法,实际上有一个巨大的区别这两位选手.

例如,AndroidJUnitRunner从以下类扩展:

在此输入图像描述

并且,AndroidJunit4从,延伸,

在此输入图像描述

那么,两位选手之间有什么区别?我最终应该使用哪名选手?

dom*_*der 17

我最近花了很多时间学习这些课程.简短的回答:你使用两者.

AndroidJUnitRunner仪表运行者.这基本上是运行整个测试套件的切入点.它控制测试环境,测试apk,并启动测试包中定义的所有测试.您可以在gradle文件中配置它:

android {
    defaultConfig {
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  }
}
Run Code Online (Sandbox Code Playgroud)

AndroidJUnit4班级试运行员.这将驱动单个类的测试.您使用以下方法注释测试类:

@RunWith(AndroidJUnit4.class)
public class MyActivityTest { ... }
Run Code Online (Sandbox Code Playgroud)

仪器亚军将处理每个测试类,并检查它的注释.它将确定设置哪个@RunWith运行器,初始化它,并使用它来运行该类中的测试.在Android的情况下,AndroidJUnitRunner显式检查AndroidJUnit4类转换器是否设置为允许将配置参数传递给它.

教育练习是在每个类中放置断点并逐步执行代码.这是我最近学到的以上信息.希望有所帮助!

  • 有用的链接:https://developer.android.com/training/testing/junit-runner.html, (3认同)