替代扩展ArgumentMatcher以进行mockito的参数验证

时间:2012-08-13 19:24:19

标签: mocking mockito argument-matcher

我想知道除了使用扩展ArgumentMatcher的类之外是否还有更优雅的方法来验证参数?

感谢。

2 个答案:

答案 0 :(得分:4)

您是否正在寻找ArgumentCaptor这样做的方式?请参阅http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html#captors。这使您可以对传递给mock方法的值执行任何您喜欢的检查。它通常比设置ArgumentMatcher简单得多。

答案 1 :(得分:1)

我不知道“更优雅”是什么意思,但实现自定义ArgumentMatcher的另一种方法是使用Mockito.argThat匹配器将Hamcrest匹配器作为参数。 Hamcrest库本身和第三方都有许多Hamcrest匹配器,因此可以避免编写自己的自定义参数匹配器,但如果没有您需要的可用,可以编写自定义Hamcrest matcher而不是Mockito ArgumentMatcher。这是否更优雅是在旁观者眼中。

可以看到this answerMockito's Matcher vs Hamcrest Matcher的使用示例。