如果在我们平时开发App中,每写一个功能,就要重新运行一下,再从头点进去,再操作,反反复复就比较耗时间。比如我想测试该请求解析数据是否正确,写的时间转化,数据过滤是否正确的场景。而单元测试直接在代码里,只需要运行几个方法,瞬间完成功能的测试。
每次在创建工程后,会在src/test文件夹下创建一个用于测试的类——UnitTest,默认创建的单元测试类。并且在gradle文件的dependencies依赖中自动已经添加了testCompile 'junit:junit:4.12'Junit单元测试库。
直接运行该类,在2ms内通过测试,通过测试报绿色,报红色表示不通过。
Junit常用注解:
注解名 含义
@Test 表示此方法为测试方法
@Before 在每个测试方法前执行,可做初始化操作
@After 在每个测试方法后执行,可做释放资源操作
@Ignore 忽略的测试方法
@BeforeClass 在类中所有方法前运行,只执行一次。此注解修饰的方法必须是static void
@AfterClass 在类中最后运行,只执行一次。此注解修饰的方法必须是static void
@RunWith 指定该测试类使用某个运行器
@Parameters 指定测试类的测试数据集合
@Rule 重新制定测试类中方法的行为
@FixMethodOrder 指定测试类中方法的执行顺序
测试各个方法执行顺序:
public class ExampleUnitTest {
@BeforeClass
public static void beforeClass(){
System.out.println("测试类开始前");
}
@Before
public void before(){
System.out.println("测试方法开始前");
}
@Ignore
@Test
public void testIgnore() {
System.out.println("忽略的方法");
}
@Test
public void test() throws Exception {
System.out.println("测试方法");
}
@After
public void after(){
System.out.println("测试方法结束后");
}
@AfterClass
public static void afterClass(){
System.out.println("测试类结束后");
}
}
测试结果:执行顺序:@BeforeClass –> @Before –> @Test –> @After –> @AfterClass