Я должен настроить автономное тестирование жасмина. Я считаю, что все правильно настроено. Когда я бегу мой первый тест:
describe('Logon Controller', function() {
var controller, $scope;
beforeEach(module("app"));
//beforeEach(inject(function ($rootScope, $controller) {
// scope = $rootScope.$new();
// contoller = $controller('logonCtrl', {
// $scope: scope
// });
//}));
beforeEach(inject(function ($rootScope) {
scope = $rootScope.$new();
}));
//it('should say hello', function ($controller, $rootScope) {
// //var scope = $rootScope.$new();
// var controller = $controller('logonCtrl', { $scope: $scope });
// //expect(angular.isFunction(scope.get)).toEqual("Hello There :)");
// expect(scope.Hello()).toEqual("Hello There :)");
// expect($scope.Hello).toBeDefined();
//});
it('should say hello', inject(function ($controller, $rootScope) {
//var scope = $rootScope.$new();
var controller = $controller('logonCtrl', {$scope: $scope});
//expect(angular.isFunction(scope.get)).toEqual("Hello There :)");
//expect(scope.Hello()).toEqual("Hello There :)");
expect($scope.Hello).toBeDefined();
}));
});
Я получаю сообщение об ошибке: Ошибка: [$ Инжектор: modulerr]? http://errors.angularjs.org/1.3.11/ $ форсунка/modulerr p0 = приложение .............
Вот моя конфигурация модуля приложения.
var app = angular.module('app', ['ui.router','ngMaterial']);
Вот мой контроллер:
app.controller('logonCtrl', ['$scope', '$state', '$interval', function ($scope, $state, $interval) {
$scope.hello = function() {};
});
]);
Я использую автономную версию жасмин 2.2.0. Я понятия не имею, в чем проблема, все, что я сделал, довольно элементарно. Любая помощь будет очень высоко ценится.
UPDATE: вот что выглядит мой SpecRunner.html как:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Jasmine Spec Runner v2.2.0</title>
<link rel="shortcut icon" type="image/png" href="JasmineUnitTest/lib/jasmine-2.2.0/jasmine_favicon.png">
<link rel="stylesheet" href="JasmineUnitTest/lib/jasmine-2.2.0/jasmine.css">
<script type="text/javascript" src="JasmineUnitTest/lib/jasmine-2.2.0/jasmine.js"></script>
<script type="text/javascript" src="JasmineUnitTest/lib/jasmine-2.2.0/jasmine-html.js"></script>
<script type="text/javascript" src="JasmineUnitTest/lib/jasmine-2.2.0/boot.js"></script>
<script type="text/javascript" src="JasmineUnitTest/lib/jasmine-2.2.0/angular.min.js"></script>
<script type="text/javascript" src="JasmineUnitTest/lib/jasmine-2.2.0/angular-mocks.js"></script>
<!-- include source files here... -->
<script type="text/javascript" src="js/controllers/logonCtrl.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="JasmineUnitTest/specs/logonController-spec.js"></script>
</head>
<body>
</body>
</html>
Часть 'beforeEach (function ($ rootScope) { scope = $ rootScope. $ New(); }));' должен иметь '$ scope' не' scope'. Это опечатка? – Chandermani
Это не опечатка, я был в предположении, что вы можете создать переменную, содержащую новый экземпляр $ rootScope, я бы не назвал переменную имя переменной. Я дам этот выстрел, и я вам это знаю, что помогает. Благодаря! –
Я все еще получаю ту же ошибку :(и это была опечатка, я заметил, что я объявил эту переменную как «$ scope» lol. –