我怎样才能找出对模拟方法的论证?

时间:2012-09-17 17:18:25

标签: actionscript-3 flex mockito

如果我写这样的话:

verify().that( mockPromise.handleFault( any() ))

它可以告诉我'handleFault'被调用了。

但后来我想调用传入的错误处理函数。处理程序将是一个私有函数,因此没有其他方法可以访问它。

2 个答案:

答案 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