2016-08-03 103 views
0

我在單元測試中訪問我的服務和過濾器時遇到了問題(我還沒有嘗試過指令)。我之前編寫過單元測試,但由於我已經轉移到了我們的構建配置中,因此無法訪問我們的新服務來編寫單元測試。我不斷得到TypeError: null is not an object (evaluating 'currentSpec.$modules') in...。我做了一些閱讀,看起來它可能與我正在使用的節點包有關。我想知道更大的社區是否可以確保這些配置看起來正確。我縮小了下面的文件。與Jasmine,Karma和ng-Mock的角度單元測試服務

使用當前的配置,這是錯誤的。

的package.json

"devDependencies": { 
    "angular": "1.5.7", 
    "angular-mocks": "1.5.7", 
    "jasmine": "2.4.1", 
    "jasmine-core": "2.4.1", 
    "karma-browserify": "5.1.0", 
    "karma-chrome-launcher": "1.0.1", 
    "karma-jasmine": "1.0.2", 
    "karma-nyan-reporter": "0.2.4", 
    "karma-phantomjs2-launcher": "0.5.0", 
    "phantomjs2": "2.2.0" 
} 

karma.conf.js

module.exports = function(config) { 
    config.set({ 

    basePath: '', 

    frameworks: ['browserify', 'jasmine'], 

    files: [ 
     'app/main.js', 
     'app/modules/**/*.spec.js', 
     'app/shared/**/**/*.spec.js' 
    ], 

    preprocessors: { 
     'app/main.js': ['browserify'], 
     'app/modules/index.js': ['browserify'], 
     'app/shared/index.js': ['browserify'], 
     'app/modules/**/*.spec.js': ['browserify'], 
     'app/shared/**/**/*.spec.js': ['browserify'] 
    }, 
    }) 
} 

service.spec.js

describe('Unit: Services', function() { 
    require('angular-mocks/ngMock'); 

    var APIHelper; 

    beforeEach(function() { 
    angular.mock.module('app.common.services'); 
    }); 

    beforeEach(inject(function(apiHelperService) { 
    APIHelper = apiHelperService; //injection is what's breaking 
    })); 

    it('should exist', function() { 
    expect(APIHelper).toBeDefined(); 
    }); 

}); 

釷e服務和規格正在以正確的順序加載。該服務沒有依賴關係。我假設當我需要注入服務依賴關係時,我會得到相同的錯誤,但如果我能夠注入注入,我可以根據需要注入適當的服務。

// This worked in a controller 
angular.mock.inject(function GetDependencies(service) { 
    service = service; 
}); 

預先感謝您花時間瀏覽本文並回答問題。

-W

回答

0

我不包括在我的應用程序聲明require('angular-mocks/ngMock')。有時候,這是小事。

+0

嘿夥計,你能接受它作爲答案,以便這個問題將被關閉 – dreamweiver

相關問題