我们尝试使用 Mockito 验证 Action 的行为。测试代码如下所示
final Type1 mock = mock(Type1.class);
new SomeAction<Type1>(mock).actionPerformed(null);
verify(mock).someMethod();
方法 actionPerformed 仅包含对 Type1 的构造函数中提供的对象调用 someMethod。然而 Mockito 提示预期的方法调用没有发生,而是发生了不同的方法调用。但是 Mockito 打印的两个调用的 String 表示是完全一样的!
任何解释发生了什么?
更新:来自 Mockito 的错误消息
Argument(s) are different! Wanted:
type1.someMethod();
-> at xxx
Actual invocation has different arguments:
type1.someMethod();
-> at xxx
最佳答案
这有点牵强,但请检查您的 toString 实现。我遇到过一些恼人的单元测试场景,从单元测试的角度来看,预期的和观察到的似乎是相同的,而实际上它们是不同的。最后,是 toString 的一个变体让我相信有相似之处,而实际上并没有。
关于java - Mockito 提示错误的论点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4266432/