【发布时间】:2017-07-03 15:20:47
【问题描述】:
我在期待来自模拟的 setAttribute 调用时遇到问题。
MyClass {
public final void setAttribute(String name, Object value) {
// Do Something
}
myClass.setAttribute("Key", "Value");
在调用 setAttribute 操作时,String 作为值传递。 我有一个名为 mockMyClass 的上述类的模拟,在我的 Expectations 块中我有以下代码。
oneOf(mockMyClass).setAttribute(with(equal("Key")), with(equal("Value")));
我也尝试过使用 any,只是为了看看泛型是否有效,但这也给出了同样的问题。
我得到的异常:
java.lang.IllegalArgumentException: 并非所有参数都给出了显式匹配器:要么所有参数都必须由匹配器指定,要么所有参数都必须由值指定,你不能混合匹配器和值
最初我尝试不使用任何匹配器并遇到异常:
oneOf(mockMyClass).setAttribute("Key", "Value");
org.jmock.api.ExpectationError: 意外调用
如何让它工作?我打算检查实际值。
【问题讨论】:
标签: java junit illegalargumentexception matcher jmock