Javascript AngularJS测试Jasmine无法调用;角度模拟模块“;使用angular-mocks.js时

Javascript AngularJS测试Jasmine无法调用;角度模拟模块“;使用angular-mocks.js时,javascript,unit-testing,angularjs,jasmine,Javascript,Unit Testing,Angularjs,Jasmine,我试图让一个基本的单元测试正常工作,但在使用angular-mocks.js时遇到了一个问题。希望这段代码能解释我的情况 describe("peconfigApp", function () { beforeEach(function() { angular.mock.module('peconfigApp'); }); describe("Binaries Controller", function () { it("should

我试图让一个基本的单元测试正常工作,但在使用angular-mocks.js时遇到了一个问题。希望这段代码能解释我的情况

describe("peconfigApp", function () {

    beforeEach(function() {
        angular.mock.module('peconfigApp');
    });

    describe("Binaries Controller", function () {
        it("should work", function () {
            expect(true).toBe(true);
        });
    });

});
Jasmine结果错误:

TypeError: Object #<Object> has no method 'module'
   at null.<anonymous> (http://localhost:58141/Tests/js/controller-tests.js:4:22)
   at jasmine.Block.execute (http://localhost:58141/Tests/lib/jasmine.js:1064:17)
TypeError:对象#没有方法“module”
在空。(http://localhost:58141/Tests/js/controller-tests.js:4:22)
在jasmine.Block.execute(http://localhost:58141/Tests/lib/jasmine.js:1064:17)
我在代码的不同部分放置了警报,以验证angular-mocks.js是否在测试加载和运行之前加载,因此我非常确定加载不是问题

<script type="text/javascript" src="../lib/angular.min.js"></script>
<script type="text/javascript" src="../lib/angular-mocks.js"></script>
<script type="text/javascript" src="lib/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-html.js"></script>
<script type="text/javascript" src="../js/controllers.js"></script>
<script type="text/javascript" src="js/controller-tests.js"></script>

要在单元测试中设置
模块
,通常需要执行以下操作:

beforeEach(module('peconfigApp'));
只要您的配置设置正确(拉入正确的文件),就应该允许您在测试中寻址模块

非常好,值得一读


希望这能有所帮助。

我在茉莉花加载之后移动了角度模拟加载

<script type="text/javascript" src="../lib/angular.min.js"></script>
<script type="text/javascript" src="lib/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-html.js"></script>
<script type="text/javascript" src="../lib/angular-mocks.js"></script>
<script type="text/javascript" src="../js/controllers.js"></script>
<script type="text/javascript" src="js/controller-tests.js"></script>


这使它起作用。愚蠢的问题,我一定是在阅读文档和教程时错过了这一点。

我刚刚花了一个小时试图让jasmine阅读我的控制器等。正如Chris所说,一切都必须按正确的顺序进行

my index.html用于运行jasmine:

<html ng-app="myApp">
<body>

    <link href="jasmine.css" rel="stylesheet" />

    <!-- Init Angular -->
    <script src="../angular.min.js"></script>
    <script src="../angular-resource.min.js"></script>

    <!-- My code -->
    <script src="../app/controller.js"></script>
    <script src="../app/main.js"></script>
    <script src="../app/service.js"></script>

    <!-- Init Jasmine -->
    <script src="../jasmine.js"></script>
    <script src="../jasmine-html.js"></script>
    <script src="../angular-mocks.js"></script>

    <!-- Insert spec's-->
    <script src="spec/controller.spec.js"></script>

    <!-- And GO! -->
    <script src="runner.js"></script>

    <!-- A basic test to check "connectivity" -->
    <div id="container" ng-controller="myCtrl">
        <h1>Say something... {{data.variablehere}}</h1>
    </div>
    <div id="HTMLReporter" class="jasmine_reporter"></div>


</body>

</html>

说点什么。。。{{data.variablehere}