如果我写这样的东西:
verify().that( mockPromise.handleFault( any() ))
告诉我调用了"handleFault"可以正常工作。
但稍后我想调用传入的错误处理程序函数。处理程序将是一个私有函数,因此没有其他方法可以访问它。
在Java Mockito中,您正在寻找的功能称为ArgumentCaptor
。简而言之,它是一种特殊的Matcher
(如any()
),它匹配任何类型的对象,并将其"匹配"的对象保留在变量中。
不幸的是,它看起来在 Flex 中尚不可用。
好消息是,如果你愿意,你可能可以在十五分钟左右编写一个Matcher
接口的实现 - 保存其最新值并返回true:)。
祝你好运!
根据杰夫的回答,我做了这个:
import org.mockito.api.Matcher;
class ArgumentCaptor implements Matcher
{
private var _value:*;
public function ArgumentCaptor()
{
}
public function get value():*
{
return _value;
}
public function describe():String
{
return "";
}
public function matches(value:*):Boolean
{
_value = value;
return true;
}
}
可以像这样使用:
var argCaptor:ArgumentCaptor = new ArgumentCaptor();
verify().that( mockPromise.handleFault( argThat(argCaptor) ));
argCaptor.value; // the argument