8

我想知道是否有注释或方法仅在 pre-conditoin 满足时才执行测试?我有一种情况,在满足特定日期之前,一些测试是相关的。我使用 JUnit,Mockito。谢谢

4

2 回答 2

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();
}

希望这对您有所帮助。

于 2013-10-10T16:43:55.817 回答
7

您可以使用Assume

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

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

Assume.assumeThat("Condition not true - ignoreing test", myPreCondition);

myPreCondition如果为假,JUnit 将忽略此测试。

于 2013-10-10T16:41:51.310 回答