Junit单元测试注解的执行顺序

如果在我们平时开发App中,每写一个功能,就要重新运行一下,再从头点进去,再操作,反反复复就比较耗时间。比如我想测试该请求解析数据是否正确,写的时间转化,数据过滤是否正确的场景。而单元测试直接在代码里,只需要运行几个方法,瞬间完成功能的测试。

每次在创建工程后,会在src/test文件夹下创建一个用于测试的类——UnitTest,默认创建的单元测试类。并且在gradle文件的dependencies依赖中自动已经添加了testCompile 'junit:junit:4.12'Junit单元测试库。

image.png

直接运行该类,在2ms内通过测试,通过测试报绿色,报红色表示不通过。


image.png
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


image.png

你可能感兴趣的:(Junit单元测试注解的执行顺序)