【发布时间】:2015-04-06 16:20:11
【问题描述】:
我已经为此寻找了几个小时的解决方案,但我无法让它发挥作用。 我有一个控制器定义为:
(function () {
'use strict';
angular.module('spaSkeleton.parCCP')
.controller('ParCCPCtrl', function ($scope, $mdToast, AnosLetivosService, UnidadesOrganicasService, CursosService, RelatoriosService, PareceresService) {
//my code
我想测试这个控制器,但我有所有这些我必须注入的服务。 其中一项服务如下所示:
var app = angular.module('sigq.anosLetivos', []);
app.service('AnosLetivosService', function (Restangular) {
this.getAnosLetivos = function () {
return Restangular.all("anos-letivos").getList({"sort": "ano_inicio"});
};
});
在我的测试文件中我有这个:
describe('Parecer Controllers', function(){
beforeEach(module('spaSkeleton.parCCP'));
beforeEach(function() {
module('namespace.anosLetivos');
module('namespace.unidadesOrganicas');
module('namespace.cursos');
module('namespace.relatorios');
module('namespace.pareceres');
module('namespace.landingPage');
});
describe('Parecer Ctrl', function(){
var scope, ctrl, $httpBackend;
beforeEach(inject(function(_$httpBackend_, $rootScope, $controller) {
$httpBackend = _$httpBackend_;
$httpBackend.expectGET(...).respond(...);
scope = $rootScope.$new();
ctrl = $controller('ParCtrl', {$scope: scope});
}));
});
});
我想要一些关于如何将这些服务注入控制器的帮助,以便我可以对其进行测试。我已经尝试了很多东西。 https://docs.angularjs.org/tutorial/step_11 这看起来很简单但不起作用,他甚至不注射东西还是他?我知道在教程中有效,但我不知道如何以及为什么我不能让它在我的项目中工作。
欢迎任何帮助:D
【问题讨论】:
标签: angularjs unit-testing angularjs-scope jasmine karma-runner