为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白板的微信 2019-06-25 13:33:01
如何在JUnit 4中按特定顺序运行测试方法?我想要执行由@Test按照特定的顺序。例如:public class MyTest {     @Test public void test1(){}     @Test public void test2(){}}我想确保test1()以前test2()每次我跑MyTest,但我找不到像这样的注释@Test(order=xx).我认为对于JUnit来说这是非常重要的特性,如果JUnit的作者不希望顺序特征为什么?
查看完整描述

3 回答

?
皈依舞

TA贡献1851条经验 获得超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()是一个简单的函数,它将所有可能的置换迭代到数组集合中。


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 1737 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信