7

我们尝试使用 Mockito 验证操作的行为。测试代码如下所示

final Type1 mock = mock(Type1.class);
new SomeAction<Type1>(mock).actionPerformed(null);

verify(mock).someMethod();

方法 actionPerformed 仅包含对 Type1 的构造函数中提供的对象的 someMethod 调用。然而,Mockito 抱怨没有发生预期的方法调用,而是发生了不同的方法调用。但是 Mockito 打印的两个调用的字符串表示是完全一样的!

任何解释发生了什么?

更新:来自 Mockito 的 ErrorMessage

Argument(s) are different! Wanted:
type1.someMethod();
-> at xxx
Actual invocation has different arguments:
type1.someMethod();
-> at xxx
4

1 回答 1

4

这有点牵强,但请检查您的 toString 实现。我遇到了一些令人讨厌的单元测试场景,从单元测试的角度来看,预期和观察到的似乎是相同的,而实际上它们是不同的。最后,是 toString 的一个变体让我相信有相似之处,而实际上没有。

于 2010-12-04T00:59:50.203 回答