equalToToを追加すると、テストが失敗する理由を理解しようとしています。 私は簡単なクラスとテストで問題を再現しました。JUnit Mockitoテストが等価で失敗する
最初のテストに合格し、2番目のテストは失敗します。
サンプルクラス
public class Class {
Map<String, Boolean> data = new HashMap<>();
public Map<String, Boolean> getData(boolean access) {
if (!access)
return null;
return data;
}}
テストクラス
public class ClassTest {
@InjectMocks
private Class testObj;
@Test
public void testGetDataNull() {
assertThat(testObj.getData(false), is(nullValue()));
}
@Test
public void testGetDataNull2() {
assertThat(testObj.getData(false), is(equalTo(nullValue())));
}}
失敗したテストでは、このエラーメッセージ
Expected: is <null>
but: was null
Q見せている。これらの違いは何ですが?
洞察が大変ありがとうございます。
2番目のテストでは、_getData(false)_の結果が_nullValue()_によって生成されたMatcherオブジェクトと等しいかどうかを実際に確認していると思います。代わりに* null *を使ってみてください。 –
あなたのクラスには 'Class'という名前を付けないでください。これはあなたにあらゆる種類の問題を引き起こす可能性があります。 – nasukkin