8

事前条件が満たされている場合にのみテストを実行する注釈または方法があるかどうか疑問に思っていましたか? 特定の日付が満たされるまで、いくつかのテストが関連する状況があります。私はJUnit、Mockitoを使用しています。ありがとう

4

2 に答える 2

9

これは、Assume を使用して行うことができます。

以下に示す例では、 if の場合にステータスを確認し、 の場合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が false の場合、JUnit はこのテストを無視します。

于 2013-10-10T16:41:51.310 に答える