2010-12-30 3 views
0

실수를 찾을 수 없습니다. 누군가 나를 도울 수 있기를 바랍니다. ASMock을 사용하여 액션 스크립트 애플리케이션을 단위 테스트하려고합니다. 비동기 테스트를 수행하고 싶지만 조롱 한 함수가 전달되지 않습니다.ASMock을 Dipatch 이벤트로 가져올 수 없습니다.

[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 핸들러에 도착하지 : 이 내가 한 것입니다. 내 오류는 어디에 있습니까? 많은 분들께 감사드립니다!

+0

참고로,'forEventDispatcher'에 대한 호출은'createStub'가 기본값으로하고 있기 때문에 필요하지 않습니다. –

답변

0

조롱 된 객체에서 dispatchEvent-method를 호출하기 만하면됩니다.

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

테스트중인 클래스/메소드/...가 이벤트를 처리 할 수 ​​있습니다.

또는 당신은 당신이 도움이

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

희망을 작동하기 전에 부하 방법은 어디에서 호출 할 것으로 예상합니다. br,

1

replayAll 이후까지 전화를 addEventListener으로 옮겨야합니다. 그대로 서면 addEventListener으로 전화를 걸기 만하면됩니다.