Java / JUnit过滤重复条件

时间:2015-10-28 18:10:41

标签: java junit

我的具体问题是关于JUnit的Parameterized Tests,过滤(基本上没有运行)测试,如果它包含某个属性。例如:

onLoadFinished

问题是,是否存在一种技术,其中约束@Test public void test1() { if (property.contains("example")) { return; } assertEquals(expected, methodToTest1(actual)); } @Test public void test2() { if (property.contains("example")) { return; } assertEquals(expected, methodToTest2(actual)); } 在其他地方静态定义,而不是在每个测试方法之前?像这样:

if (property.equals("example"))...

2 个答案:

答案 0 :(得分:5)

您可以将JUnit的Assume feature@Before一起使用。

@Before方法添加到测试类

@Before
public void dontRunIfExample() {
  assumeFalse(property.contains("example"));
}

并从每个测试中移除if块。

答案 1 :(得分:0)

这取决于您运行JUnit测试的方式。你可以完全使用Java的System.getProperty("conditionForTest")。然后,如果您通过命令行启动它们,则需要使用-DconditionForTest=true指定它们,或者如果您使用ant运行测试,则可以将其传递到目标。

<sysproperty key="conditionForTest" value="true"/>