0

間違いを見つけることができません。誰かが私を助けてくれることを願っています。ASMock を使用して自分の actionscript アプリケーションを単体テストしようとしています。非同期テストを実行したいのですが、モック関数をディスパッチできません。これは私がしたことです:

[Test(async,timeout="5000")]
public function testFailedIDResponse() : void {
  var mockRepository : MockRepository = new MockRepository();

// 記録

var oMock:ConnectionProcessor  = ConnectionProcessor(mockRepository.createStub(ConnectionProcessor));
oMock.addEventListener("ConnectionProcessor.LOGICALERROR", Async.asyncHandler(this, onWrongID, 5000)); 
SetupResult.forCall(oMock.logigalErrorCode).returnValue("NOT_FOUND");
SetupResult.forEventDispatcher(oMock);
SetupResult.forCall(oMock.load()).dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));
mockRepository.replayAll();
oMock.load();

しかし、イベントが onWrongID ハンドラに到達しません。私のエラーはどこですか?どうもありがとう!

4

2 に答える 2

1

addEventListenerまでにコールを移動する必要がありますreplayAll。現状では、 への通話を録音しているだけaddEventListenerです。

于 2011-05-21T14:59:12.173 に答える
0

モックされたオブジェクトから dispatchEvent-method を呼び出すだけです。

例えば

oMock.dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));

次に、テスト中のクラス/メソッド/...がイベントを処理できるようになります。

または、作業する前に load メソッドがどこかで呼び出されることが予想される場合

Expect.call(oMock.load()).dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));

それが役に立ったことを願っています。br、

于 2011-03-31T16:49:29.613 に答える