我有一个提供Restriction-object的方法(Restriction是一个接口).并且由于它的实现已经是testet,我只想测试我的方法是否实际上提供了RestrictionImpl-object.
我看到有一些匹配器可以和assert一起使用,我想,isA-matcher是想要完成这项任务的东西.
简化我的代码看起来像这样:
public static Restriction getRestriction() {
return new RestrictionImpl();
}
我的测试看起来像那样;
@Test
public void getRestriction_returnsRestrictionImpl() {
assertThat(getRestriction(), isA(RestrictionImpl.class));
}
但是这不会编译.我所能做的只是测试,如果RestrictionImpl是一个限制……但是没有必要这样做.
我是否误解了isA的目的?它的意义是什么?
更新:
使用assertThat(getRestriction(),is(instanceOf(RestrictionImpl.class)))会起作用,但我认为isA是一个快捷方式.
以我想要的方式调用assert将要求它具有签名assertThat(T,Matcher),但其签名是assertThat(T,Matcher)