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

您需要将您的呼叫移至addEventListenerafter replayAll。就目前而言,它只是记录您对addEventListener.

于 2011-05-21T14:59:12.173 回答
0

你只需要从你的模拟对象中调用 dispatchEvent 方法。

例如

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

然后你的类/方法/...被测试将能够处理该事件。

或者如果您希望在使用之前在某处调用 load 方法

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

希望有帮助。兄弟,

于 2011-03-31T16:49:29.613 回答