@Drm

Unit tests Angular, как протестировать запрос к провайдеру?

Доброго времени суток. Решил разобраться с юнит тестированием в Angular (и юнит тестированием вообще).

Тестирую контроллер формы входа:

$scope.login = function(){
        $auth.login({
            user: $scope.user.name,
            password: $scope.user.password
        }).then(
          function(resp){
            console.log(resp);
            $scope.resp = resp;
            return $state.go('auth.dm');
          },
          function(){
            console.error("cant't update ");
          }
        )
    };


Соответственно вся задача контроллера - это обратиться к провайдеру аутентификации, передав ему данные из формы ( user: $scope.user.name, password: $scope.user.password), и если ответ успешен, то перенаправить на определенное состояние, если нет, выдать ошибку.

В провайдере тоже нет ничего необычного, он просто делает запрос и передает туда данные:

login: function (params) {
          var _this = this;
          _this.initDfd();
          $http.post(configs.apiUrl, params)
            .success(function (resp) {
              _this.setAuthorized(resp);
              return _this.resolveDfd();
            })
            .error(function () {
              return _this.rejectDfd();
            });
          return _this.dfd.promise;
        },


Соответственно хочу описать контроллер в юнит тесте, но не могу понять, как это сделать.
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Суть юнит тестирования - тестировать только один юнит за раз, все остальное - моки. То есть мокать надо сам сервис а не $http
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы