如果我写这样的东西:
verify().that( mockPromise.handleFault( any() ))
它可以很好地告诉我调用了“handleFault”。
但后来我想调用传入的故障处理函数。处理程序将是一个私有函数,因此没有其他方法可以访问它。
如果我写这样的东西:
verify().that( mockPromise.handleFault( any() ))
它可以很好地告诉我调用了“handleFault”。
但后来我想调用传入的故障处理函数。处理程序将是一个私有函数,因此没有其他方法可以访问它。
在 Java Mockito 中,您正在寻找的功能称为ArgumentCaptor
. 简而言之,它是一种特殊的Matcher
(如any()
),它匹配任何类型的对象并将它“匹配”的对象保存在变量中。
不幸的是,它似乎还没有在 Flex 中可用。
好消息是,如果您愿意,您可能可以在大约Matcher
15 分钟内编写一个完全执行此操作的接口实现——保存其最新值并返回 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