本章将介绍如何使用ArgumentMatcher

Maven依赖

ArgumentMatchers

来看一种返回固定值的mock方法。

可能会有需要支持更多入参或未知入参的情况,这时我们可以用argument matchers

因为使用了anyString匹配,现在无论入参是多少,返回的都是Flower

多于多参数方法,Mocito要求对所有参数都要应用argument matchers进行匹配。

下面举一个错误的例子

如果要固定name为“poppy”,我们需要使用eq mactcher

在使用mactcher时,有两点需要注意

  1. 不能使用matcher模拟返回值

  2. 不能再验证方法外使用matcher

1很好理解,对于2来看一个例子

会抛出InvalidUseOfMatchersException,错误信息中给出了正确使用的demo。

正确使用如下

Mockito还提供了额外的匹配方法(“not”、“and”、“or”)等。

参考资料:

Mockito ArgumentMatchers

原文:大专栏  Mockito-ArgumentMatchers


01-26 14:32
查看更多