【发布时间】:2010-11-24 11:54:24
【问题描述】:
我们尝试使用 Mockito 验证操作的行为。测试代码是这样的
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
【问题讨论】:
-
我试过了,它的工作方式符合您的预期(验证通过。)您使用的是什么版本的 Mockito?我在1.8。您确定您的 null 参数不会导致采用不同的分支吗?
-
版本为1.8.5; someMethod 是一个单一的,所以真的没有不同的部分。
-
您能提供一个SSCCE吗?
-
刚刚用 1.8.5 版试了一下,这一切都通过了。你正在做的事情一定是不同的。
-
你确定你对这些方法没有参数吗?具有相同字符串表示的参数?
标签: java testing mockito verify