嗨我需要在某个方法完成后运行我的一个测试方法。尽管根据How to run test methods in specific order in JUnit4?测试应该是独立的。
另一个黑客就是使用
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
但我想要的是我需要按照与文件相同的顺序运行测试。如果无法完成,那么我只需要使用方法名称分类器
答案 0 :(得分:2)
从Java 7开始,JDK不再保证在通过反射查找时返回类中的方法的顺序(像JUnit那样的框架必须这样做)。
因此,您的问题的答案是:不,不可能确保测试方法按照在源代码中声明的顺序执行。
正如您所注意到的,在JDK 7 +上的JUnit 4中,唯一可能是随机排序的替代方法是@FixMethodOrder(MethodSorters.NAME_ASCENDING)
。
答案 1 :(得分:1)
有一个非常关键的问题,为什么你不应该开始发明这样的要求。
单元测试的想法是每个测试......测试你所测试的类的不同方面。相互独立的方面。这是一方面。另一个是:单元测试可以帮助您确定生产中的问题,尽可能快速。
含义:突然间,单元测试失败(因为有人在某处改变了某些东西),那么你想尽快找到这个问题的根本原因。任何妨碍您达到目标的事情都会使您的单元测试 对您有价值!
让你更难找到足部原因的事情将是:
长话短说:单元测试不是以任何特定顺序运行。所以,而不是花费大量时间将JUnit推到一个不想再做的角落......退一步,并重新考虑为什么你认为你需要的东西是那样。