JUnit 入门

建立

要使用 JUnit 开始对 Android 项目进行单元测试,你需要将 JUnit 依赖项添加到项目中,并且需要创建一个测试源集,该源集将包含单元测试的源代码。使用 Android Studio 创建的项目通常已包含 JUnit 依赖项和测试源集

将以下行添加到依赖项 Closure 中的模块 build.gradle 文件中:

testCompile 'junit:junit:4.12'

JUnit 测试类位于名为 test 的特殊源集中。如果此源集不存在,则需要自己创建新文件夹。默认 Android Studio(基于 Gradle)项目的文件夹结构如下所示:

<project-root-folder>
    /app (module root folder)
        /build
        /libs
        /src
            /main (source code)
            /test (unit test source code)
            /androidTest (instrumentation test source code)
        build.gradle (module gradle file)
    /build
    /gradle
    build.gradle (project gradle file)
    gradle.properties
    gradlew
    gradlew.bat
    local.properties
    settings.gradle (gradle settings)

如果你的项目没有/app/src/test 文件夹,则需要自己创建。在 test 文件夹中,你还需要一个 java 文件夹(如果它不存在则创建它)。test 源集中的 java 文件夹应包含与 main 源集相同的包结构。

如果设置正确,你的项目结构(在 Android Studio 中的 Android 视图中)应如下所示:

StackOverflow 文档

注意:你不一定需要拥有 androidTest 源集,此源集通常位于 Android Studio 创建的项目中,并包含在此处以供参考。

写一个测试

  1. test 源代码集中创建一个新类。
    右键单击项目视图中的测试源集,选择 New> Java class
    最常用的命名模式是使用添加了 Test 来测试的类的名称。所以 StringUtilities 变成了 StringUtilitiesTest

  2. 添加 @RunWith 注释
    需要 @RunWith 注释才能使 JUnit 运行我们将在测试类中定义的测试。默认的 JUnit 运行器(对于 JUnit 4)是 BlockJUnit4ClassRunner,但是使用别名 JUnit4 而不是直接使用它运行,这是默认 JUnit 运行器的简写。

     @RunWith(JUnit4.class)
     public class StringUtilitiesTest {
    
     }
    
  3. 创建测试
    单元测试基本上只是一种方法,在大多数情况下,如果运行则不应该失败。换句话说,它不应该抛出异常。在测试方法中,你几乎总能找到断言,检查是否满足特定条件。如果断言失败,则抛出异常,导致方法/测试失败。测试方法始终使用 @Test 注释进行注释。如果没有此注释,JUnit 将不会自动运行测试。

     @RunWith(JUnit4.class)
     public class StringUtilitiesTest {
    
         @Test
         public void addition_isCorrect() throws Exception {
             assertEquals("Hello JUnit", "Hello" + " " + "JUnit");
         }
     }
    

    注意:与标准 Java 方法命名约定不同,单元测试方法名称通常包含下划线。

运行测试

  1. 方法
    要运行单个测试方法,你可以右键单击该方法并单击 Run 'addition_isCorrect()'或使用键盘快捷键 ctrl+shift+f10StackOverflow 文档

    如果一切设置正确 JUnit 开始运行该方法,你应该在 Android Studio 中看到以下界面:

    StackOverflow 文档


  2. 你还可以运行单个类中定义的所有测试,方法是在项目视图中右键单击类并单击 Run 'StringUtilitiesTest ',或者如果在项目视图中选择了类,则使用键盘快捷键 ctrl+shift+f10

  3. 包(所有内容)
    如果你不想运行项目或包中定义的所有测试,只需右键单击包并单击 Run ...,就像运行单个类中定义的所有测试一样。