早做单元测试的时候,发现某些方法测试一直报错,集成测试却能通过,最后发现是单元测试测试方法的执行顺序问题。
junit注解类型:BeforeClass、Before、Test、After、AfterClass
如果有静态代码块,那么最先执行的是静态代码块,然后是BeforeClass
每一个Test注解的方法在执行前,都要依次执行测试类的构造方法、所有Before注解的方法
每一个Test注解的方法在执行后,都要执行所有After注解的方法
最后执行AfterClass注解的方法
但是,对于有的时候一些方法之间存在一些依赖关系的问题,添加FixMethodOrder的方法可能并不能解决问题,如何让多个测试方法按照指定的顺序(例如:代码的顺序)执行,目前还没有找到解决方法。我现在采用主要使用两种方法:
1. 对于存在依赖关系的两个或者多个方法,对测试方法命名时,根据依赖关系,按照字典序命名,例如,方法A依赖方法B,那么就把方法B命名为TestC 的形式,把方法A命名为TestD的形式,再对测试类添加MethodSorters.NAME_ASCENDING注解,让测试方法按照名称字典序执行
2. 在需要依赖其他方法的test方法的方法体中执行该方法依赖的方法。