2014-10-30 3 views
1

Я пытаюсь проверить асинхронный код с дротиком.Как проверить асинхронный код с angulardart

Моя логика:

  1. Моя служба удаления узла после задержки.
  2. В моем тесте я выполняю службу, и они ждут задержки немного больше, чтобы проверить, удален ли узел.

Я делаю это с ванильным дротиком, но с угловой я получаю исключение:

Test failed: Caught [Timer created from sync function.] 

Тогда я обернуть мой тест в асинхронном и получить ошибку последующей:

Test failed: Caught [2 active timer(s) are still in the queue.] 

создать репо для тестов здесь: https://github.com/giovannicandido/angulardart-async-test

ответ

1

Тест выполнен в специальной зоне (см. lib/mock/zone.dart).

В этой зоне новый таймер() создаст макет таймера, и вам понадобится , чтобы вызвать clockTick() для имитации тактов синхронизации.

См. Пример test/mock/zone_spec.dart.

Ваш тест должен вероятно выглядеть

clockTick(milliseconds: 1150); 
expect(ndom).toBeNull(); 
+0

Спасибо. Я думаю, должна существовать документация, специфичная для тестов. Тест с угловым - это то, что делает голову разработчика очень горячей :-). Обычно я перехожу к исходному коду, но это не тривиально. –

Смежные вопросы