マッチャーが値と一致しない場合に理由を説明しようとすると、コンパイル エラーが発生します。
@Rule
public ErrorCollector collector = new ErrorCollector();
@Test
public void textShouldMatch(){
String expected ="Lebron James";
String result ="Kobe Bryant";
collector.checkThat("Doesn't match",result, is(expected));
}
javadoc の checkThat メソッドの構文は次のとおりです。
checkThat
public <T> void checkThat(String reason,T value, Matcher<T> matcher)
マッチャーが値と一致しない場合、指定された理由で失敗をテーブルに追加します。実行は続行されますが、一致が失敗した場合、テストは最後に失敗します。