junit测试用例-按顺序执行等
1:问题描述
有时候测试需要从上往下依次执行,或者有特殊需求,需要自定义顺序
2:junit方案:@FixMethodOrder(value)
junit中给出了@FixMethodOrder(value)注解,可以用来控制顺序等,value有三种类型
2.1:MethodSorters.JVM
根据JVM返回的名称执行,那个方法先执行都存在不确定性,每次执行顺序可能也都不一样
2.2:MethodSorters.DEFAULT
默认使用这个策略,执行顺序根据hashcode值来决定
2.3:MethodSorters.NAME_ASCENDING
根据方法名来的,当然这个策略不能只加注解,而是跟方法名有要求,具体的操作如下:
方法名需要以这样的前缀开头,当然直接使用ABCD开头也是可以的,但是没有这个命名规范
·
使用ABCD
3:代码实现
import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; @FixMethodOrder(MethodSorters.NAME_ASCENDING ) public class ObjTest { @Test public void test_01_queryObj(){ System.out.println("test_01_queryObj"); } @Test public void test_02_queryObjById(){ System.out.println("test_02_queryObjById"); } @Test public void test_03_queryObjByName(){ System.out.println("test_03_queryObjByName"); } @Test public void test_04_queryObjByCuster(){ System.out.println("test_04_queryObjByCuster"); } @Test public void test_05_queryObjByTicket(){ System.out.println("test_05_queryObjByTicket"); } }
4:总结
如果有执行顺序需求,则使用MethodSorters.NAME_ASCENDING,然后命名使用:统一前缀_+ 序号 _+方法名,如:test_01_queryObject,提高可读性的同时,规范了执行顺序