3
Попытка получить некоторые тесты единиц в AngularJS (с использованием жасмина & karma) работает и пытается понять зависимость впрыска ... текущее сообщение об ошибке в карма читает «Ошибка: аргумент« fn »не функция, есть строка»
app.js
angular.module('App', [ 'App.Services', 'App.Controllers', 'App.Directives']);
controller.js
angular.module('App.Controllers', []).
controller('MarketplaceCtrl', function ($scope, apiCall) {
apiCall.query({
type: 'engagement',
engagement_status__in: '0,1'
}, function(data) {
var engagements = {};
$.each(data.objects, function (i, engagement) {
engagements[engagement.lawyer_id] = engagement
});
$scope.engagements = engagements;
});
});
services.js
angular.module('App.Services', ['ngResource']).
factory('apiCall', function ($resource) {
return $resource('/api/v1/:type',
{type: '@type'},
{
query: {
method: 'GET',
isArray: false
}
}
);
});
controllerSpec.js
describe('controllers', function() {
beforeEach(
module('App', ['App.Controllers', 'App.Directives', 'App.Services'])
);
describe('MarketplaceCtrl', function() {
var scope, ctrl, $httpBackend;
beforeEach(inject(function (_$httpBackend_, $rootScope, $controller) {
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('/api/v1/engagement?engagement_status__in=0,1').
respond([]);
scope = $rootScope.$new();
/* Why is MarketplaceCtrl not working? :(*/
ctrl = $controller('MarketplaceCtrl', {$scope: scope});
}));
it('should have a MarketplaceCtrl controller', (function() {
expect(ctrl).not.to.equal(null);
}));
});
});
я бегу в ту же ошибку. Я пишу тесты для контроллера. Это находится в собственном файле. Поэтому я включаю скрипт контроллера в тестовую страницу теста жасмина. Так что я требую, чтобы 'app.js' также включался в то же самое для написания тестов на мой контроллер? Не могли бы вы также включить скрипты, которые вы включили для написания тестов – Deeptechtons