gpt4 book ai didi

java - 如何让 Mockito.verify 忽略其他类型参数?

转载 作者:行者123 更新时间:2023-11-30 07:06:51 25 4
gpt4 key购买 nike

我有一个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:
genericCreator.create(<any>); Wanted 1 time .... But was 2 times ...
虽然实际上我不关心 .create(bar) 调用并且我不希望测试失败,因为它被调用了。我怎样才能做到这一点?

最佳答案

在您关心特定类型的调用中使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com