Mockito抱怨​​错误的论点

Jen*_*der 7 java testing verify mockito

我们尝试使用Mockito验证操作的行为.测试代码看起来像这样

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

verify(mock).someMethod();
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

jav*_*y79 4

这有点牵强,但请检查您的 toString 实现。我遇到过一些令人恼火的单元测试场景,从单元测试的角度来看,预期的和观察到的似乎是相同的,而实际上它们是不同的。最终,toString 的一个变体让我相信存在相似性,但实际上并不存在。