このようなものを書くと:
verify().that( mockPromise.handleFault( any() ))
「handleFault」が呼び出されたことを通知しても問題ありません。
しかし後で、渡された障害ハンドラー関数を呼び出したいと思います。ハンドラーはプライベート関数になるため、それにアクセスする別の方法はありません。
このようなものを書くと:
verify().that( mockPromise.handleFault( any() ))
「handleFault」が呼び出されたことを通知しても問題ありません。
しかし後で、渡された障害ハンドラー関数を呼び出したいと思います。ハンドラーはプライベート関数になるため、それにアクセスする別の方法はありません。
Java Mockito では、探している機能は と呼ばれArgumentCaptor
ます。要するに、これは特別な種類のMatcher
( のようなany()
) であり、あらゆるタイプのオブジェクトに一致し、「一致」したオブジェクトを変数に保持します。
残念ながら、Flex ではまだ利用できないようです。
幸いなことに、その気になれば、Matcher
最新の値を保存して true を返す、まさにそれを行うインターフェースの実装を 15 分ほどで作成できる可能性があります。:)
幸運を!
ジェフの答えに基づいて、私はこれをしました:
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