Restriction
-objectを提供する特定のメソッドがあります(Restriction
はインターフェイスです)。そして、その実装は既に testet であるため、メソッドが実際にオブジェクトを配信するかどうかをテストしたいだけですRestrictionImpl
。
一緒に使用できるマッチャーがあることを知り、このタスクには -マッチャーが必要だと思いましたassertThat
。isA
私のコードを簡略化すると、次のようになります。
public static Restriction getRestriction() {
return new RestrictionImpl();
}
私のテストはそのように見えます。
@Test
public void getRestriction_returnsRestrictionImpl() {
assertThat(getRestriction(), isA(RestrictionImpl.class));
}
ただし、これはコンパイルされません。私ができることは、 aRestrictionImpl
が a Restriction
... であるかどうかをテストすることだけですが、これを行う意味はありません。
の目的を誤解していisA
ますか? そして、それは実際には何を意味するのでしょうか?
更新:
を使用するとうまくいきますが、それはまさにそのための近道assertThat(getRestriction(), is(instanceOf(RestrictionImpl.class)))
だと思いました。
私が望む方法で呼び出すには、署名が必要ですが、その署名はisA
assertThat
assertThat(T, Matcher<? extends T>)
assertThat(T, Matcher<? super T>)