条件满足时如何忽略单元测试?

dat*_*ser 7 java junit mockito

我想知道是否有注释或方法只能执行测试,如果pre-conditoin满足?我有一种情况,在某个特定日期满足之前,某些测试是相关的.我使用JUnit,Mockito.谢谢

Vis*_*kla 9

您可以使用Assume来完成此操作.

在下面显示的示例中,我想检查状态以防万一,如果precondition==true我想断言在发生异常时抛出异常precondition==false.

@Test
public final void testExecute() throws InvalidSyntaxException {
    Assume.assumeTrue(precondition);  // Further execution will be skipped if precondition holds false
    CommandResult result = sentence.getCommand().execute();
    boolean status = Boolean.parseBoolean(result.getResult());
    Assert.assertTrue(status);
}

@Test(expected = InvalidSyntaxException.class)
public final void testInvalidParse() throws InvalidSyntaxException {
    Assume.assumeTrue(!precondition);
    CommandResult result = sentence.getCommand().execute();
}
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助.


Bri*_*new 7

您可以使用Assume类

一组方法,用于说明关于测试有意义的条件的假设.失败的假设并不意味着代码被破坏,而是测试没有提供有用的信息.默认的JUnit运行器将失败假设的测试视为忽略.

所以在测试开始时你可以写

Assume.assumeThat("Condition not true - ignoreing test", myPreCondition);
Run Code Online (Sandbox Code Playgroud)

如果myPreCondition为false ,JUnit将忽略此测试.