1

このようなものを書くと:

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

「handleFault」が呼び出されたことを通知しても問題ありません。

しかし後で、渡された障害ハンドラー関数を呼び出したいと思います。ハンドラーはプライベート関数になるため、それにアクセスする別の方法はありません。

4

2 に答える 2

3

Java Mockito では、探している機能は と呼ばれArgumentCaptorます。要するに、これは特別な種類のMatcher( のようなany()) であり、あらゆるタイプのオブジェクトに一致し、「一致」したオブジェクトを変数に保持します。

残念ながら、Flex ではまだ利用できないようです

幸いなことに、その気になれば、Matcher最新の値を保存して true を返す、まさにそれを行うインターフェースの実装を 15 分ほどで作成できる可能性があります。:)

幸運を!

于 2012-09-17T17:35:33.360 に答える
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
于 2012-09-17T18:07:13.270 に答える