我想执行@Test以特定顺序注释的测试方法。
@Test
例如:
public class MyTest { @Test public void test1(){} @Test public void test2(){} }
我想确保每次运行test1()前test2()都运行MyTest,但是找不到类似的注释@Test(order=xx)。
test1()
test2()
MyTest
@Test(order=xx)
我认为对于JUnit来说这是非常重要的功能,如果JUnit的作者不希望使用订单功能,为什么呢?
我认为这对于JUnit来说是非常重要的功能,如果JUnit的作者不希望使用订购功能,为什么呢?
我不确定用JUnit做到这一点的干净方法,据我所知JUnit假定所有测试都可以按任意顺序执行。从常见问题解答:
如何使用测试治具? (…)测试方法调用的顺序不能保证,因此testOneItemCollection()可能在testEmptyCollection()之前执行。(...)
testOneItemCollection()
testEmptyCollection()
(...)
为什么会这样呢?好吧,我相信使测试顺序依存性是作者不希望提倡的做法。测试应该是独立的,他们不应该被耦合,并且违反本将让事情变得难以维持,将打破单独(明显),运行等测试的能力
话虽如此,如果你真的想朝这个方向发展,请考虑使用TestNG,因为它支持以本机任意顺序运行测试方法(以及指定方法取决于方法组的事情)。Cedric Beust解释了如何按照testng中的测试执行顺序执行此操作。