Я пытаюсь протестировать службу, которую я построил, что делает некоторые асинхронные работы за кулисами. Имейте в виду, что я использую mocks, которые немедленно разрешают обещание, поэтому реальная работа async на самом деле не происходит.Angular2 тестирует отклоненное обещание с fakeAsync
Мой тест выглядит следующим образом:
it('should reject promise when condition is met',
inject([MyService], fakeAsync((myService: MyService) => {
let rejected = false;
myService.doSomeAsyncWork().catch(() => {
rejected = true;
});
tick();
expect(rejected).toBe(true);
}))
);
Когда я запускаю это я получаю следующее сообщение об ошибке:
Error: 2 timer(s) still in the queue.
Если изменить клеща() будет тикать (1000), то это говорит мне только 1 таймер все еще находится в очереди. Если я вызову tick() несколько раз, это не имеет значения.
Что я делаю неправильно?
Спасибо!