ReferenceError:模块未在Jasmine Angular js中定义 [英] ReferenceError: module is not defined in Jasmine Angular js

查看:115
本文介绍了ReferenceError:模块未在Jasmine Angular js中定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开始使用Angular并进行单元测试,这是我的第一个代码,它不起作用。我搜索了一个解决方案,但我不知道我做错了什么。如果有人能向我解释这是什么错误,我会感谢你。

I am begining with Angular and with unit testing, this is my first code, and it isn't working. I searched for a solution but I dont know what I am doing wrong. If anyone can explain to me what is the mistake, I would thank you.

这是我的全部代码。

<!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>

提前致谢

推荐答案

脚本的顺序是错误的。您应首先包含与Jasmine相关的脚本,然后包括角度和角度模拟的脚本。

The sequence of your scripts is wrong. You should first include the scripts related to Jasmine, and then the scripts for angular and angular-mocks.

<!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);
    });
});

这篇关于ReferenceError:模块未在Jasmine Angular js中定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆