我在开始使用Jasmine和AngularJS时遇到了麻烦。我尝试创建一个最小的示例,该示例主要源自有角度的文档:
我在testme.js中有一个模块和一个控制器:
(function(){
"use strict";
let cont = function($scope) {
$scope.data = 99;
};
let app = angular.module('Test', []);
app.controller('Cont', cont);
}());
我有一个测试TestSpec.js
"use strict";
console.log('launching test...');
describe('Test a test', function(){
console.log('in describe...');
beforeEach(angular.module('Test'));
it('should create a number', inject(function($controller){
let scope = {};
console.log('in test...');
let ctrl = $controller('Cont', {$scope:scope}); // fails here
console.log('got controller...');
expect(scope.data).toBe(99);
console.log('test completed...');
}));
});
还有一个SpecRunner.html
<!DOCTYPE html>
<html data-ng-app="Test">
<head>
<link rel="shortcut icon" type="image/png" href="jasmine/lib/jasmine-2.4.1/jasmine_favicon.png">
<link rel="stylesheet" href="jasmine/lib/jasmine-2.4.1/jasmine.css">
<script src="jasmine/lib/jasmine-2.4.1/jasmine.js"></script>
<script src="jasmine/lib/jasmine-2.4.1/jasmine-html.js"></script>
<script src="jasmine/lib/jasmine-2.4.1/boot.js"></script>
<script src="scripts/angular.js"></script>
<script src="scripts/angular-mocks.js"></script>
<script src="scripts/testme.js"></script>
<script src="test/TestSpec.js"></script>
</head>
<body data-ng-controller="Cont">
<h1>Value is {{data}}</h1>
</body>
</html>
好像启动了,我收到消息了
在描述中启动测试...在测试中...
但在TestSpec.js中尝试执行我标记为//的行失败。这告诉我,我没有设法检索控制器。不用说,我不明白为什么(关于这个主题有很多问题,但就我所知,这些问题似乎都不适用)。
谢谢!托比
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句