我有某种方法可以提供Restriction
-object(Restriction
接口在哪里)。而且由于它的实现已经是 testet,我只想测试我的方法是否真的提供了一个RestrictionImpl
-object。
我看到有可以一起使用的匹配器,assertThat
我想,isA
-matcher 是这个任务需要的东西。
简化我的代码如下所示:
public static Restriction getRestriction() {
return new RestrictionImpl();
}
我的测试看起来像这样;
@Test
public void getRestriction_returnsRestrictionImpl() {
assertThat(getRestriction(), isA(RestrictionImpl.class));
}
但是,这不会编译。我所能做的就是测试,如果 aRestrictionImpl
是Restriction
......但这样做没有意义。
我对目的有误解isA
吗?它的真正含义是什么?
更新:
使用assertThat(getRestriction(), is(instanceOf(RestrictionImpl.class)))
会起作用,但我认为这isA
正是这样做的捷径。以我想要的方式
调用需要它有签名,但它的签名是assertThat
assertThat(T, Matcher<? extends T>)
assertThat(T, Matcher<? super T>)