2015-04-08 2 views
1

Так мне и моей команде создании веб-приложений, и мы делаем это:AngularJS, что должно быть испытанные

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

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

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

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

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

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

метод

службы:

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

Так что тест будет выглядеть так:

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

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

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

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

EDIT 1:

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

+0

Конечно, вы можете начать с e2e/accept, а затем реорганизовать проект для мелкозернистых тестов, когда у вас будет время. Если бы никто из команды не обладал солидным опытом разработки приложений TDD, было бы слишком рискованно начинать рефакторинг в середине нигде. – estus

+0

Да, у нас нет большого опыта в тестировании: P –

ответ

1

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

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

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

+0

Спасибо, я буду считать, что проблема здесь - это крайний срок, а не деньги, но и время - это деньги xD Я не буду принимать уже потому, что хочу сначала увидеть несколько ответов , Но спасибо! –

+0

Да, некоторые поучительные примеры из сообщества были бы в этом. – estus