我想知道除了使用扩展ArgumentMatcher的类之外是否还有更优雅的方法来验证参数?
感谢。
答案 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。这是否更优雅是在旁观者眼中。