我遇到了Mockito和Hamcrest的仿制问题.
请假设以下界面:
public interface Service { void perform(Collectionelements); }
以下测试片段:
Service service = mock(Service.class); // ... perform business logic verify(service).perform(Matchers.argThat(contains("a", "b")));
所以我想验证我的业务逻辑实际上是用一个包含"a"和"b"的集合来调用服务.
但是,返回类型contains(...)
是Matcher
,所以在我的情况下Matchers.argThat(...)
返回Iterable
,这自然不适用于所需的Collection
.
我知道我可以使用Hamcrest hasItem和Mockito中提出的参数捕获器验证不一致,但我非常愿意不这样做.
有什么建议!谢谢!