AndroidJUnitRunner 和 AndroidJunit4 有什么区别?

What is the difference between AndroidJUnitRunner and AndroidJunit4?

我是 Android 测试领域的新手,单元测试的样本提到了 AndroidJunit4 runner 的使用。我偶然发现了另一个叫 AndroidJUnitRunner 的跑步者。现在,我看到了 classes 的文档,乍一看,区别似乎在于 AndroidJunit4 支持 JUnit4,尤其是 AndroidJUnitRunner 支持 JUnit3 和 JUnit4,但如果您查看class 结构和可用方法,这两个跑步者之间实际上存在巨大差异。

例如,AndroidJUnitRunner 从以下 class 扩展而来:

而且,AndroidJunit4 延伸自,

那么,这两个跑步者有什么区别,我最终应该使用哪个跑步者?

我最近花了很多时间在这些 classes 上。简短回答:您使用 both.

AndroidJUnitRunner 工具 运行 工程师。这实质上是 运行 整套测试的入口点。它控制测试环境、测试 apk,并启动测试包中定义的所有测试。您在 gradle 文件中配置它:

android {
    defaultConfig {
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  }
}

AndroidJUnit4class 测试 运行ner。这是驱动单个 class 测试的东西。你用这个注释你的测试 classes:

@RunWith(AndroidJUnit4.class)
public class MyActivityTest { ... }

工具运行ner 将处理每个测试class并检查其注释。它将确定哪个 class 运行ner 设置为 @RunWith,对其进行初始化,并将其用于 运行 中的测试class。在 Android 的情况下,AndroidJUnitRunner 显式检查 AndroidJUnit4 class 运行 是否设置为允许向其传递配置参数。

教育练习是在每个 classes 中放置断点并单步执行代码。这是我最近为了了解以上信息所做的。希望对您有所帮助!