Я пытаюсь протестировать свой контроллер AngularJS, используя Jasmine с Karma. Когда я пытаюсь выполнить задокументированную процедуру для настройки теста контроллера, $scope не создается. На самом деле похоже, что раньше не выполняется вообще.
Вот мое объявление контроллера:
angular.module("myApp", ["ngCookies"])
.controller("myCtrl", function($scope, $window, $location, MyService,
$timeout, $log, $cookies, $q) {
Мой тест выглядит так:
describe("MyController test", function() {
var $scope;
beforeEach(
module("myApp", ["ngCookies"]));
beforeEach(inject(function($rootScope, $controller) {
$scope = $rootScope.$new(); // It looks like this is never called
scope =$scope;
$controller("myCtrl", {$scope: $scope});
}));
it("Checks the state of various units", function() {
...
});
Похоже, что материал beforeEach никогда не вызывается. Я предполагаю, что мне нужно ввести остальные мои свойства в контроллер, но если это так, я не уверен, как это сделать.
Это ошибка в журнале тестового запуска
FAILED MyController test Checks myFunction starting from blank state
Error: [$injector:modulerr] Failed to instantiate module ngCookies due to:
Error: [ng:areq] Argument 'fn' is not a function, got string
http://errors.angularjs.org/1.3.14/ng/areqp0=fn&p1=not%20a%20function%2C%20got%20string