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 视图中)应如下所示:
注意:你不一定需要拥有 androidTest
源集,此源集通常位于 Android Studio 创建的项目中,并包含在此处以供参考。
写一个测试
-
在
test
源代码集中创建一个新类。
右键单击项目视图中的测试源集,选择New
>Java class
。
最常用的命名模式是使用添加了Test
来测试的类的名称。所以StringUtilities
变成了StringUtilitiesTest
。 -
添加
@RunWith
注释
需要@RunWith
注释才能使 JUnit 运行我们将在测试类中定义的测试。默认的 JUnit 运行器(对于 JUnit 4)是BlockJUnit4ClassRunner
,但是使用别名JUnit4
而不是直接使用它运行,这是默认 JUnit 运行器的简写。@RunWith(JUnit4.class) public class StringUtilitiesTest { }
-
创建测试
单元测试基本上只是一种方法,在大多数情况下,如果运行则不应该失败。换句话说,它不应该抛出异常。在测试方法中,你几乎总能找到断言,检查是否满足特定条件。如果断言失败,则抛出异常,导致方法/测试失败。测试方法始终使用@Test
注释进行注释。如果没有此注释,JUnit 将不会自动运行测试。@RunWith(JUnit4.class) public class StringUtilitiesTest { @Test public void addition_isCorrect() throws Exception { assertEquals("Hello JUnit", "Hello" + " " + "JUnit"); } }
注意:与标准 Java 方法命名约定不同,单元测试方法名称通常包含下划线。
运行测试
-
方法
要运行单个测试方法,你可以右键单击该方法并单击Run '
addition_isCorrect()'
或使用键盘快捷键ctrl+shift+f10
。如果一切设置正确 JUnit 开始运行该方法,你应该在 Android Studio 中看到以下界面:
-
类
你还可以运行单个类中定义的所有测试,方法是在项目视图中右键单击类并单击Run 'StringUtilitiesTest '
,或者如果在项目视图中选择了类,则使用键盘快捷键ctrl+shift+f10
。 -
包(所有内容)
如果你不想运行项目或包中定义的所有测试,只需右键单击包并单击Run ...
,就像运行单个类中定义的所有测试一样。