Javascript ReferenceError:模块未在Jasmine js中定义
我从Angular和单元测试开始,这是我的第一个代码,它不起作用。我寻找解决办法,但我不知道我做错了什么。如果有人能向我解释是什么错误,我会感谢你 这是我所有的代码Javascript ReferenceError:模块未在Jasmine js中定义,javascript,angularjs,jasmine,Javascript,Angularjs,Jasmine,我从Angular和单元测试开始,这是我的第一个代码,它不起作用。我寻找解决办法,但我不知道我做错了什么。如果有人能向我解释是什么错误,我会感谢你 这是我所有的代码 <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-mocks.js"></script>
<script src="jasmine.js"></script>
<script src="jasmine-html.js"></script>
<script src="boot.js"></script>
<link rel="shortcut icon" type="image/png" href="jasmine_favicon.png">
<link rel="stylesheet" href="jasmine.css">
</head>
<body ng-app = "myApp">
<div ng-controller = "MyCtrl">
{{greeting}}
</div>
<br><br><br>
<script>
<!-- CODE -->
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl', ['$scope', function($scope) {
$scope.greeting = 'Hello World!';
}]);
<!-- JASMINE -->
describe('myApp', function () {
var scope,
controller;
beforeEach(function () {
module('myApp');
});
describe('MyCtrl', function () {
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller('MyCtrl', {
'$scope': scope
});
}));
it('sets the greeting', function () {
expect(scope.greeting).toBe('Hello World!');
});
});
});
describe('JavaScript addition operator', function () {
it('adds two numbers together', function () {
expect(1 + 2).toEqual(3);
});
});
</script>
</body>
</html>
{{问候语}
var myApp=angular.module('myApp',[]);
控制器('MyCtrl',['$scope',函数($scope){
$scope.greeting='Hello World!';
}]);
描述('myApp',函数(){
var范围,
控制器;
beforeach(函数(){
模块(“myApp”);
});
描述('MyCtrl',函数(){
beforeach(注入(函数($rootScope,$controller){
scope=$rootScope.$new();
控制器=$controller('MyCtrl'{
“$scope”:作用域
});
}));
它('设置问候语',函数(){
expect(scope.greeting).toBe('helloworld!');
});
});
});
描述('JavaScript加法运算符',函数(){
它('将两个数字相加',函数(){
期望(1+2)、toEqual(3);
});
});
提前感谢您的脚本顺序错误。您应该首先包括与Jasmine相关的脚本,然后是用于角度和角度模拟的脚本
<!DOCTYPE html>
<html lang="en">
<head>
<!--Scripts for Jasmine-->
<script src="jasmine.js"></script>
<script src="jasmine-html.js"></script>
<script src="boot.js"></script>
<!--Script for Angular-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<!--Scripts for Angular-Mocks-->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-mocks.js"></script>
<link rel="shortcut icon" type="image/png" href="jasmine_favicon.png">
<link rel="stylesheet" href="jasmine.css">
</head>
<body ng-app = "myApp">
<div ng-controller = "MyCtrl">
{{greeting}}
</div>
<br><br><br>
<script>
<!-- CODE -->
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl', ['$scope', function($scope) {
$scope.greeting = 'Hello World!';
}]);
<!-- JASMINE -->
describe('myApp', function () {
var scope,
controller;
beforeEach(function () {
module('myApp');
});
describe('MyCtrl', function () {
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller('MyCtrl', {
'$scope': scope
});
}));
it('sets the greeting', function () {
expect(scope.greeting).toBe('Hello World!');
});
});
});
describe('JavaScript addition operator', function () {
it('adds two numbers together', function () {
expect(1 + 2).toEqual(3);
});
});
{{问候语}
var myApp=angular.module('myApp',[]);
控制器('MyCtrl',['$scope',函数($scope){
$scope.greeting='Hello World!';
}]);
描述('myApp',函数(){
var范围,
控制器;
beforeach(函数(){
模块(“myApp”);
});
描述('MyCtrl',函数(){
beforeach(注入(函数($rootScope,$controller){
scope=$rootScope.$new();
控制器=$controller('MyCtrl'{
“$scope”:作用域
});
}));
它('设置问候语',函数(){
expect(scope.greeting).toBe('helloworld!');
});
});
});
描述('JavaScript加法运算符',函数(){
它('将两个数字相加',函数(){
期望(1+2)、toEqual(3);
});
});
脚本的顺序错误。您应该首先包括与Jasmine相关的脚本,然后是用于角度和角度模拟的脚本
<!DOCTYPE html>
<html lang="en">
<head>
<!--Scripts for Jasmine-->
<script src="jasmine.js"></script>
<script src="jasmine-html.js"></script>
<script src="boot.js"></script>
<!--Script for Angular-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<!--Scripts for Angular-Mocks-->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-mocks.js"></script>
<link rel="shortcut icon" type="image/png" href="jasmine_favicon.png">
<link rel="stylesheet" href="jasmine.css">
</head>
<body ng-app = "myApp">
<div ng-controller = "MyCtrl">
{{greeting}}
</div>
<br><br><br>
<script>
<!-- CODE -->
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl', ['$scope', function($scope) {
$scope.greeting = 'Hello World!';
}]);
<!-- JASMINE -->
describe('myApp', function () {
var scope,
controller;
beforeEach(function () {
module('myApp');
});
describe('MyCtrl', function () {
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller('MyCtrl', {
'$scope': scope
});
}));
it('sets the greeting', function () {
expect(scope.greeting).toBe('Hello World!');
});
});
});
describe('JavaScript addition operator', function () {
it('adds two numbers together', function () {
expect(1 + 2).toEqual(3);
});
});
{{问候语}
var myApp=angular.module('myApp',[]);
控制器('MyCtrl',['$scope',函数($scope){
$scope.greeting='Hello World!';
}]);
描述('myApp',函数(){
var范围,
控制器;
beforeach(函数(){
模块(“myApp”);
});
描述('MyCtrl',函数(){
beforeach(注入(函数($rootScope,$controller){
scope=$rootScope.$new();
控制器=$controller('MyCtrl'{
“$scope”:作用域
});
}));
它('设置问候语',函数(){
expect(scope.greeting).toBe('helloworld!');
});
});
});
描述('JavaScript加法运算符',函数(){
它('将两个数字相加',函数(){
期望(1+2)、toEqual(3);
});
});
我认为您的意思是在每个函数之前在
中键入angular.module('myApp')
。这样可以删除“ReferenceError:module未定义”,但“ReferenceError:inject未定义”仍然保留。我能为那个特殊的错误做些什么?谢谢,我明白了。你需要在装载前装载茉莉花。将
标记移动到jasmine.js
和jasmine html.js
的上方。这就是angularmocks.js
检测测试环境的方式。之后,您可以再次使用module
而不是angular.module
。它不会更改状态。“ReferenceError:inject未定义”保留,通过将jasmine
和jasmine html
的标记移到angular
和angular mock
的标记上方,不允许删除angular.module@MikeCI认为您是想在每个
函数之前的中键入angular.module('myApp')
。这样可以删除“ReferenceError:module未定义”,但“ReferenceError:inject未定义”仍然保留。我能为那个特殊的错误做些什么?谢谢,我明白了。你需要在装载前装载茉莉花。将
标记移动到jasmine.js
和jasmine html.js
的上方。这就是angularmocks.js
检测测试环境的方式。之后,您可以再次使用module
而不是angular.module
。它不会更改状态。“ReferenceError:inject未定义”保留,通过将jasmine
和jasmine html
的标记移到angular
和angular mock
的标记上方,不允许删除angular.module@米凯克