2015-12-23 1 views
2

Недавно мы начали писать тестовые примеры для нашего приложения, нам нужна помощь в написании тестовых примеров для контроллеров. Мы используем библиотеки Mocha, chai и Snion для написания тестовых примеров.Как написать тестовые примеры для контроллеров в Angular js

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

http://plnkr.co/edit/oginuqO0afxnWbVMos0f?p=info

Вот код:

angular.module('ngBoilerplate.account', [ 
    'ui.router','ngAnimate', 'ui.bootstrap','ngBoilerplate.contact','ngResource','jcs-autoValidate','ngCookies','ngTagsInput' 
]) 
.controller('addAccount', function($scope,industryService,$http,$state,LoggedUser){ 
    $scope.industry = []; 
    industryService.query().$promise.then(function(data) { 
     $scope.industry = data; 
    }); 

    window.onbeforeunload = function (event) { 

     if ($scope.addAccountForm.$dirty) { 

      var message = 'If you leave this page you are going to lose all the unsaved changes.'; 

      if (typeof event == 'undefined') { 
       event = window.event; 
      } 
      if (event) { 
       event.returnValue = message; 
      } 

      return message; 
     } 
    }; 

    $scope.insertAccount = function(){ 
     $scope.address = { 
      'line1':$scope.line1, 
      'line2':$scope.line2, 
      'city':$scope.city, 
      'zipCode':$scope.zipCode, 
      'state':$scope.state, 
      'country':$scope.country 
     }; 

     console.log($scope.industryId); 

     if($scope.industryId!== undefined) { 

      $scope.industry = { 
       'id' : $scope.industryId 
      }; 
     } 

     $http.post('/rest/users/'+LoggedUser.getUserName()+'/accounts',{ 
      'name' : $scope.name, 
      'industryBean': $scope.industry, 
      'email' :$scope.email, 
      'phone' : $scope.phone, 
      'fax' : $scope.fax, 
      'website' : $scope.website, 
      'headquarters' : $scope.headquarters, 
      'dbaName' : $scope.dbaName, 
      'numberOfEmployees' : $scope.numberOfEmployees, 
      'annualRevenue':$scope.annualRevenue, 
      'logo' : $scope.logo, 
      'primaryContact': $scope.contact, 
      'addressBean':$scope.address 
     }).success(function(data){ 
      $scope.account=data; 
      $state.go('main.account', {}, {reload: true}); 
     }); 
    }; 
}) 
.factory("loggedInUser", function($resource) { 
    return $resource("/rest/users/:username"); 
}) 
.factory("industryService", function($resource) { 
    return $resource("/rest/accounts/industry"); 
}) 

Любая помощь очень ценится.

Заранее благодарю вас, если у вас есть вопросы по тому же вопросу.

ответ

1

Я люблю мокко-чай и синон и использую их для проверки кода узла. Никогда не использовали их с угловым.

Типичная Угловая установка - это карма, жасмин (модульное тестирование) и транспортир (испытание E2E).

Глядя на ваш код контроллера, я бы сказал, что у вас слишком много логики в контроллере. Вам необходимо отнести код к сервису.

В отношении тестирования $ http вам необходимо использовать ng-mock $ httpBackend.

Вы также должны использовать синтаксис Angular Controller As в своем коде.

+0

спасибо за ответ bro ... Это определенно помогает ... Я постараюсь с этим. –

 Смежные вопросы

  • Нет связанных вопросов^_^