AngularJS что надо тестировать

Итак, я и моя команда создаем веб-приложение, и мы делаем это:

  • один из них отвечает за API:
    • API будет обслуживать пользовательский интерфейс, предоставлять ему данные и иметь возможность предоставлять поля, которые пользовательский интерфейс хочет, отсортировать и все, в основном он фильтрует все данные, поэтому пользовательский интерфейс не должен.
  • Еще один отвечает за пользовательский интерфейс:
    • Пользовательский интерфейс будет использовать API и представлять данные
  • Я делаю тест, но я делаю тесты после кода. Я тестирую как API (phpunit — модульные тесты и интеграционные тесты), так и пользовательский интерфейс (jasmine — модульные тесты и транспортир — e2e тесты)

Так что я должен на самом деле проверить?

Большинство функций контроллера в angularJS извлекают данные и присваивают их $ scope, так стоит ли эти функции проводить модульное тестирование?

Пример метода контроллера:

UnidadesOrganicasService.getUnidadesOrganicas().then(function (unidadesOrganicas) {
$scope.unidadesOrganicas = unidadesOrganicas;
}, function errorCallback() {
$scope.showToastError('Occorreu um erro a carregar as unidades orgânicas!');
});

Другие методы делают в основном то же самое с некоторыми if, которые зависят от данных, поступающих из API.

метод обслуживания:

this.getUnidadesOrganicas = function () {
return Restangular.all("unidades-organicas").getList({"sort": "acronimo"});
};

Таким образом, тест будет выглядеть так:

  • макет данных с $ httpBackend
  • проверка области имеет правильные проверенные данные, но это приведет к чему-то вроде этого: expect($scope.something).toEqual(MockedSomething); и http макет будет просто так: $httpBackend.expectGET('/something').respond(MockedSomething);

Я знаю, что тесты E2E для пользовательского интерфейса очень важны, но в этом случае стоит ли проводить модульные тесты для таких методов? Или я должен просто проверить действительно важные методы, такие как методы исчисления и подобные методы?

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

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

РЕДАКТИРОВАТЬ 1:

Другой вопрос: в моем случае (я тестирую по коду, а не по разработке, управляемой тестами), я должен тестировать только после завершения работы контроллера (делать то, что он должен делать, но может быть немного изменен), верно?

1

Решение

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

Кредиты Angular за реальное тестирование модулей контроллера, но чаще всего я пропускаю его и оставляю его на e2e, это особенно верно, если держать контроллеры тонкими.

Если вы действительно уверены в своем бэкэнд-тестировании, вы можете пропустить $httpBackend и получить еще один шаг в цепочке обещаний, если дизайн сервиса это позволяет, это нежелательный, но выполнимый сценарий.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]