Javascript 角罐的茉莉花试验';我找不到我的控制器
我无法为Angular应用程序设置Jasmine测试。Jasmine找不到我的控制器(我怀疑它根本找不到我的应用程序) 下面的示例演示了我遇到的问题:Javascript 角罐的茉莉花试验';我找不到我的控制器,javascript,angularjs,jasmine,Javascript,Angularjs,Jasmine,我无法为Angular应用程序设置Jasmine测试。Jasmine找不到我的控制器(我怀疑它根本找不到我的应用程序) 下面的示例演示了我遇到的问题: angular.module('testMod', []) .controller('testController', ['$scope', function($scope) { $scope.person = {name: 'Jim', age: 14}; function innerFunction(
angular.module('testMod', [])
.controller('testController', ['$scope', function($scope) {
$scope.person = {name: 'Jim', age: 14};
function innerFunction() {}
}]);
测试:
它在线路上失败了
myController = $controller('testController', {$scope: $rootScope});
我看到的错误是:
Error: [ng:areq] Argument 'testController' is not a function, got undefined
我正在为Jasmine使用独立的SpecRunner.html,并加载了我的应用程序和规范:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Jasmine Spec Runner v2.0.0</title>
<link rel="shortcut icon" type="image/png" href="lib/jasmine-2.0.0/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="lib/jasmine-2.0.0/jasmine.css">
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/boot.js"></script>
<!-- angular-mock must be loaded AFTER Jasmine -->
<script type="text/javascript" src="../src/angular-1.2.5.min.js"></script>
<script type="text/javascript" src="../src/angular-mock-1.2.5.js"></script>
<!-- include source files here... -->
<script type="text/javascript" src="../src/testMod.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="spec/testMod.Test.js"></script>
</head>
<body>
</body>
</html>
Jasmine Spec Runner v2.0.0版
非常感谢您的建议-我已经为此挣扎了一段时间。您的测试有几个问题:
describe('testMod suite', function() {
var $rootScope, testController;
beforeEach(module('testMod'));
beforeEach(inject(function($controller, $rootScope) {
myScope = $rootScope.$new();
ctrl = $controller('testController', {
$scope: myScope
});
}));
it('works', function() {
expect( myScope.innerFunction).toBeDefined();
});
});
另外,将角度控制器代码更改为:
angular.module('testMod', [])
.controller('testController', ['$scope', function($scope) {
$scope.person = {name: 'Jim', age: 14};
$scope.innerFunction = function() {}
}]);
angular.module('testMod', [])
.controller('testController', ['$scope', function($scope) {
$scope.person = {name: 'Jim', age: 14};
$scope.innerFunction = function() {}
}]);