我找不到我的错误,希望有人能帮我。我正在尝试使用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处理程序。我的错误在哪里?非常感谢各位!
发布于 2011-05-21 22:59:12
您需要将呼叫转移到replayAll之后的addEventListener。现在,它只是记录您对addEventListener的呼叫。
发布于 2011-04-01 00:49:30
您只需从模拟对象调用dispatchEvent-method即可。
例如:
oMock.dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));然后你的类/方法/..。在测试下将能够处理该事件。
或者,如果您希望load方法在使用
Expect.call(oMock.load()).dispatchEvent(new Event("ConnectionProcessor.LOGICALERROR"));希望这能帮上忙。br
https://stackoverflow.com/questions/4564228
复制相似问题