我是否需要在单元测试中模拟angularjs控制器的所有依赖项?

时间:2014-07-18 05:19:41

标签: angularjs unit-testing jasmine

我有一个具有多个依赖项的控制器。 我是否需要全部模拟以测试我的范围? 这是我的代码......

.controller('SignupCtrl', ['$scope', 'vcRecaptchaService', '$http', '$location', '$compile', 'createModal', '$routeParams',
        '$filter', 'allCountriesService', 'allStatesProvincesService', 'allCitiesMunicipalitiesService', 'appConfig', 'AuthService',
        '$rootScope', '$timeout', 'appConfigHC', '$log',
        function ($scope, vcRecaptchaService, $http, $location, $compile, $createModalService, $routeParams, $filter, allCountriesService, allStatesProvincesService, allCitiesMunicipalitiesService, appConfig, AuthService, $rootScope, $timeout, appConfigHC, $log) {

2 个答案:

答案 0 :(得分:0)

您应该只需要模拟对服务器进行$http调用的依赖项。其他只包含完全驻留在JavaScript中的逻辑的依赖项不需要被模拟。

以下是一个链接,详细说明了使用$httpBackend来模拟对服务器的调用。

https://docs.angularjs.org/api/ngMock/service/ $ httpBackend

希望这有帮助。

答案 1 :(得分:-1)

创建一个服务,为您处理所有http调用并模拟该服务。不建议在控制器中处理http调用。