2013-11-05 121 views
1

我只是試圖讓Karma設置來測試我與Jasmine的Angular應用程序。我得到這個錯誤:設置Jasmine&Karma來測試Angular

INFO [karma]: Karma v0.10.4 server started at http://localhost:9876/ 
INFO [launcher]: Starting browser Chrome 
INFO [Chrome 30.0.1599 (Mac OS X 10.9.0)]: Connected on socket pxDaOUXMfGXOVL7ZOuPb 
Chrome 30.0.1599 (Mac OS X 10.9.0) ItemCtrl should work FAILED 
    TypeError: Object [object Object] has no method 'off' 
     at null.<anonymous> (/Users/macbookpro/Sites/groceries/spec/angular-mocks.js:1917:36) 

下面是功能angular-mocks.js

afterEach(function() { 
    var injector = currentSpec.$injector; 

    currentSpec.$injector = null; 
    currentSpec.$modules = null; 
    currentSpec = null; 

    if (injector) { 
     injector.get('$rootElement').off(); 
     injector.get('$browser').pollFns.length = 0; 
    } 

    angular.mock.clearDataCache(); 

    // clean up jquery's fragment cache 
    angular.forEach(angular.element.fragments, function(val, key) { 
     delete angular.element.fragments[key]; 
    }); 

    MockXhr.$$lastInstance = null; 

    angular.forEach(angular.callbacks, function(val, key) { 
     delete angular.callbacks[key]; 
    }); 
    angular.callbacks.counter = 0; 
    }); 

我想我只是需要在我的業力的配置順序錯誤文件。這是我的文件結構:

karama.config.js是在同一個目錄/spec因爲它需要的文件:

// list of files/patterns to load in the browser 
    files: [ 
     'angular.min.js', 
     'angular-mocks.js', 
     'app_testable.js', 
     'app_spec.js' 
    ], 

app_testable.js是我的應用程序的精簡版與除角度沒有依賴關係。這是我的測試。我只是想讓true成爲true

'use strict'; 

describe('ItemCtrl', function(){ 
    var scope; 
    beforeEach(angular.mock.module('Grocerease')); 
    beforeEach(angular.mock.inject(function($rootScope, $controller){ 
     scope = $rootScope.$new(); 
     $controller('ItemCtrl', {$scope: scope}); 
    }) 
); 

    it('should work', function(){ 
    expect(true).toBe(true); 
    }); 

}); 

我該如何設置業力,才能正確運行測試?

+0

你在使用jQuery嗎? – dimirc

+0

編號我正在使用的唯一文件在上面列出。另外,我沒有包含角度資源,因爲我沒有使用路由器模塊。這是必需的嗎? – nickcoxdotme

+0

angular-resource不適用於路由器模塊,而是處理來自REST API的「資源」。請重新檢查一下,您是否錯過了可能在index.html – dimirc

回答

5

該問題看起來像一個依賴項被錯誤地加載。

你使用什麼版本的角度? '角'和'角嘲'文件應該是相同的版本。

+0

+1爲我解決:確保版本匹配! –

+0

謝謝,救了我幾個小時的調試 – LiorH

相關問題