2016-12-12 39 views
0

我已經包括在我的人緣配置3個文件:1. angular.js,角mock.js和login.spec.js使用因緣測試失敗:模塊的應用無法

這是我的登陸.spec.js:

describe("Hello World example", function() { 

    beforeEach(module("app")); 

    var loginCtrl, 
    scope; 

    beforeEach(inject(function ($rootScope, $controller) { 
    scope = $rootScope.$new(); 
    loginCtrl = $controller('loginCtrl', { 
     $scope: scope 
    }); 
    })); 

    it('says hello world!', function() { 
    expect(scope.hello).toEqual("Hello"); 
    }); 

    }); 

所以我login.js(控制器)這個樣子

angular.module('app') 
    .controller('loginCtrl', function($scope, $rootScope, $location) { 
    $scope.hello = 'hello'; 
    }); 

,但我得到了Module 'app' is not available!

+0

你有一個beforeEach()包括應用程序模塊。你在輸入嗎? – rrd

+0

@rrd我不知道。我現在很困惑,我試過'beforeEach(angular.mock.module('app'));' 它不起作用。 –

+0

我會嘗試玩'angular-mocks.js'加載的順序。我建議將它加載到主文件之後但在規格文件之前。 看看這個設置 https://github.com/divyanthj/hello-world-angular/blob/master/helloWorld.conf.js –

回答

0

我沒有看到你創建應用程序模塊anywere。你應該包括你的測試需要的app.js和所有的源給你的karma.json。

0

你只需要這一行添加到您的login.js頂部文件:

此聲明模塊:

angular.module('app', []); 

這得到了模塊的一個實例(如你正在做的) :

angular.module('app') 
    .controller('loginCtrl', function($scope, $rootScope, $location) { 
    $scope.hello = 'hello'; 
    }); 

這裏是一個工作Plunkr非常相似: http://embed.plnkr.co/O1otV47VxsIL5krAdUW0/preview

您還提到您已將3個文件添加到karma配置中,並未提及login.js。這也需要添加。