2017-07-30 71 views
0

我目前有两组测试,除了setUp()方法调用之外,其他各种测试方法都是相同的。我想简化代码,以便一组测试仅定义一次,但每个组都运行自己的方法,然后运行相同的一组测试。用于相同测试的两种不同的setUp方法

目前我的代码看起来是这样的:

group('test things while a flag is turned off',() { 
    setUp(() { 
    global_flags.flag = false; 
    } 
    /* run lots of tests */ 
}) 

group('test things while a flag is turned on'() { 
    setUp(() { 
    global_flags.flag = true; 
    } 
    /* run the exact same tests */ 
} 

我如何巩固这一代码?

+0

怎么样使用相同的'设置()'和执行取决于'flag'不同的代码。 'if(global_flags.flag){...} else {...}' –

+0

@GünterZöchbauer会工作;但那么我怎么能运行测试两次? – jxmorris12

回答

1

您可以在相同的测试多次注册并添加参数来定制执行:

main() { 
    myTests(true); 
    myTests(false); 
} 

myTests(bool global_flags) { 
    group('test things while a flag is turned ${global_flags ? 'on' : 'off'}'() { 
    /* run the exact same tests */ 
    }); 
} 
+1

虽然此代码段可能会解决问题,但[包括解释](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高您的帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – doydoy

相关问题