作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个GenericCreator,方法如下
<E extends Entity> E create(E entity);
我想断言此方法(其中 E = Foo)仅被调用一次。我不在乎是否使用任何其他类型参数调用它。以下断言对我不起作用:
verify(genericCreator).create(any(Foo.class));
因为在下面的情况下:
Foo foo = new Foo();
Bar bar = new Bar();
genericCreator.create(foo);
genericCreator.create(bar);
它抛出 org.mockito.exceptions.verification.TooManyActualInvocations:
虽然实际上我不关心 .create(bar) 调用并且我不希望测试失败,因为它被调用了。我怎样才能做到这一点?
genericCreator.create(<any>); Wanted 1 time .... But was 2 times ...
最佳答案
在您关心特定类型的调用中使用 isA
匹配器。
http://site.mockito.org/mockito/docs/current/org/mockito/ArgumentMatchers.html#isA(java.lang.Class)
any
的文档指出它实际上并不检查类型——它只是为了让您避免转换。因此,用 any 验证接受任何类型的对象——这就是为什么你得到 2 个调用而不是 1 个。
关于java - 如何让 Mockito.verify 忽略其他类型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25372312/
我是一名优秀的程序员,十分优秀!