Угловое наблюдаемое тестирование для обеспечения подписки было вызвано - PullRequest
0 голосов
/ 13 марта 2019

Я новичок в Angular, и у меня есть вопрос о модульном тестировании Jasmine для Observables. В частности, я хочу провести отрицательное тестирование, чтобы убедиться, что был вызван метод подписки наблюдаемого, в противном случае тест дает ложное срабатывание.

У меня есть базовый компонент, который показывает список имен отчетов и ссылок. Свойство reports объявлено так в файле component.ts:

reports$: Observable<Report[]>;

В блоке beforeEach я настраиваю список из 3 отчетов о тестах и ​​присваиваю отчетам свойство $.

Этот тест не проходит должным образом:

 it('correctly fails because the test uses async.', async(() => {

    component.reports$.subscribe(val => {
      expect(val.length).toEqual(3);

      expect(1).toEqual(2); // this does fail as it should
    });

  }));

Этот тест пройден, но, очевидно, это ложный положительный результат. Могу ли я включить что-либо в сам тест, чтобы он провалился? Я думаю о более широкой картине на будущее, когда в проект будут добавлены дополнительные юнит-тесты. Является ли асинхронная обертка лучшим способом?

  it('passes but its a false positive because the async is not used by the test', () => {

        component.reports$.subscribe(val => {
          expect(val.length).toEqual(3);

          expect(1).toEqual(2); // obviously should fail
        });

        // what can I do in this test to ensure the subscribe was called?

      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...