Что на самом деле тестирует сервис http в Angular? - PullRequest
0 голосов
/ 17 декабря 2018

Немного теоретического вопроса здесь.

Я следую официальной документации angular.io , чтобы протестировать сервис, выполняющий запросы http, и я успешно реализовал свою спецификацию,пока все хорошо.

Что я не понимаю, это то, что мы действительно тестируем здесь, при условии, что я указываю фиктивные данные, которые я должен получить обратно из запроса.

Иными словами, как бы я допустил провал этого теста?

Что делает HttpClientModule внутри, что делает этот тест достойным реализации?

Не поймите меня неправильно, я первый, кто выступает за модульное тестирование, я просто не понимаю, какую ценность мы получаем от этой специфической спецификации.

Большое спасибо за ваше время.

Приветствия.

1 Ответ

0 голосов
/ 19 декабря 2018

Это делается для того, чтобы убедиться, что ваша служба выполняет HTTP-вызов, если вызваны ее методы, и вы можете проверить HTTP, вызванный с помощью «GET / POST / PUT» и т. Д.

Согласно документации:

Библиотека HTTP-тестирования Angular предназначена для шаблона тестирования, при котором приложение выполняет код и сначала выполняет запросы.

Затем тест ожидает, что определенные запросы были или не были выполнены, выполняет утверждения в отношенииэти запросы и, наконец, предоставить ответы путем «сброса» каждого ожидаемого запроса.

В конце тесты могут проверить, что приложение не отправило неожиданных запросов.

Так что если ваша службаимеет метод submitData, который помещает данные в службу отдыха.Тогда в этом случае ваш тест должен проверить, действительно ли это делает submitData.Пример:

service.submitData(myRequestObj).subscribe(() => {
        expect(http.put).toHaveBeenCalled();
        expect(http.put).toBeCalledWith('service-url');
    });

Сказав это, вам решать, хотите ли вы издеваться, шпионить и тестировать услугу или если нет особой ценности, вы можете просто проигнорировать.

...