Я пытаюсь проверить мой контроллер AngularJS с помощью Jasmine с кармой. Когда я пытаюсь установить documented procedure для настройки теста контроллера, область $ не создается. На самом деле это выглядит так, как раньше не выполняется.Как представить свой контроллер в тестах Jasmine/Karma
Вот мой контроллер декларации:
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
Я вижу нечто очень похожее. В моем случае часть причины заключается в том, что inject() генерирует исключение (перед вызовом обратного вызова), что «модуль« angulartics »недоступен! Вы либо ошибочно написали имя модуля, либо забыли его загрузить. При регистрации модуля убедитесь, что вы определяете зависимости как второй аргумент. " Я передаю angularitics таким же образом, что вы проходите ngCookies. И я уверен, что включил его, возможно, не в том месте? Надеюсь, что любое предлагаемое здесь предложение поможет мне тоже! –