Не удается получить ASMock для событий Dipatch - PullRequest
0 голосов
/ 30 декабря 2010

Я не могу найти свою ошибку, надеюсь, кто-нибудь может мне помочь. Я пытаюсь провести модульное тестирование моего приложения Actionscript, используя ASMock. Я хочу выполнить асинхронный тест, но у меня не получается посылать смоделированные функции вот что я сделал:

[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. где моя ошибка? Большое спасибо, ребята!

Ответы [ 2 ]

1 голос
/ 21 мая 2011

Вам нужно перевести звонок на addEventListener до тех пор, пока replayAll.В настоящее время он просто записывает ваш звонок на addEventListener.

0 голосов
/ 31 марта 2011

Вам просто нужно вызвать метод dispatchEvent из вашего смоделированного объекта.

например,

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

Тогда ваш тестируемый класс / метод / ... сможет обработатьevent.

или если вы ожидаете, что метод загрузки будет вызван где-то прежде, чем вы сможете работать с

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

, надеюсь, это помогло.ш,

...