我怎样才能知道对模拟方法给出了什么参数



如果我写这样的东西:

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

相关内容

  • 没有找到相关文章

最新更新