我有一个类型:
class SomeType {}
我有一种方法可以嘲笑Mockito
和Hamcrest
:
class SomeService {
public List<SomeType> doSomething(List<SomeType> producer) {
...
}
}
如果传递了java.util.List
并且该列表至少包含一个指定的元素,我需要模拟 doSomething()
方法。现在我使用强制转换来编译:
when(someService.doSomething(
((List<SomeType>) MockitoHamcrest.<List<SomeType>>argThat(CoreMatchers.hasItem(mySomeType))))
.thenReturn(emptyList());
但我想让它在没有石膏的情况下安全打字。有没有办法进行这样的检查?
抱歉,即使您将生产方法参数更改为 Iterable<SomeType>
,也无法避免此转换,因为人们可能会认为这可能会有所帮助,因为argThat
返回<Iterable<? super Object>>
。