如何在JUnit 4中按特定顺序运行测试方法?

如何在JUnit 4中按特定顺序运行测试方法?

我想要执行由@Test按照特定的顺序。

例如:

public class MyTest {
    @Test public void test1(){}
    @Test public void test2(){}}

我想确保test1()以前test2()每次我跑MyTest,但我找不到像这样的注释@Test(order=xx).

我认为对于JUnit来说这是非常重要的特性,如果JUnit的作者不希望顺序特征为什么?


白板的微信
浏览 1773回答 3
3回答

皈依舞

如果订单是重要的,你应该自己下订单。@Test public void test1() { ... }@Test public void test2() { test1(); ... }特别是,如果有必要,您应该列出一些或所有可能的顺序排列以进行测试。例如,void test1(); void test2(); void test3(); @Testpublic void testOrder1() { test1(); test3(); } @Test(expected = Exception.class)public void testOrder2() { test2(); test3(); test1(); } @Test(expected = NullPointerException.class)public void testOrder3() { test3(); test1(); test2(); }或者,对所有排列进行全面测试:@Testpublic void testAllOrders() {     for (Object[] sample: permute(1, 2, 3)) {         for (Object index: sample) {             switch (((Integer) index).intValue()) {                 case 1: test1(); break;                  case 2: test2(); break;                  case 3: test3(); break;              }         }     }}这里,permute()是一个简单的函数,它将所有可能的置换迭代到数组集合中。
打开App,查看更多内容
随时随地看视频慕课网APP