如果我写这样的话:
verify().that( mockPromise.handleFault( any() ))
它可以告诉我'handleFault'被调用了。
但后来我想调用传入的错误处理函数。处理程序将是一个私有函数,因此没有其他方法可以访问它。
答案 0 :(得分:3)
在Java Mockito中,您正在寻找的功能称为ArgumentCaptor
。简而言之,它是一种特殊的Matcher
(如any()
),它匹配任何类型的对象,并使对象在变量中“匹配”。
不幸的是,它看起来像是not available in Flex yet。
好消息是,如果您愿意,您可以编写Matcher
接口的实现,在接下来的十五分钟内完成该操作 - 保存其最新值并返回true。 :)
答案 1 :(得分:0)
根据杰夫的回答,我这样做了:
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