本章将介绍如何使用ArgumentMatcher。
Maven依赖
ArgumentMatchers
来看一种返回固定值的mock方法。
可能会有需要支持更多入参或未知入参的情况,这时我们可以用argument matchers。
因为使用了anyString匹配,现在无论入参是多少,返回的都是Flower。
多于多参数方法,Mocito要求对所有参数都要应用argument matchers进行匹配。
下面举一个错误的例子
如果要固定name为“poppy”,我们需要使用eq mactcher
在使用mactcher时,有两点需要注意
不能使用matcher模拟返回值
不能再验证方法外使用matcher
1很好理解,对于2来看一个例子
会抛出InvalidUseOfMatchersException,错误信息中给出了正确使用的demo。
正确使用如下
Mockito还提供了额外的匹配方法(“not”、“and”、“or”)等。
参考资料:
原文:大专栏 Mockito-ArgumentMatchers