2016-03-02 63 views
1

我有一個用Jasmine框架創建的單元測試。當我在描述塊中放入單個測試規範時,我會在業力控制檯中通過。如果我複製該描述塊與測試(it();)然後我突然開始得到模塊使用的依賴關係的問題。卡瑪茉莉單元測試的未知proc error錯誤

在控制檯中,我遇到了未知提供者的錯誤。

這是我簡單的測試:

describe('service definition tests', function() { 

    it('should be defined', function() { 
     expect(sut).toBeDefined(); 
    }); 

}); 

和傳遞好。如果我複製這個塊,我得到一個關於依賴關係的錯誤。這很奇怪,因爲我已經證明我可以測試'sut'是在第一次測試中定義的。

有一點需要注意的是,我有一個beforeEach塊加載模塊並提供了一個依賴關係,這是我重複測試時發生錯誤的依賴關係。這裏是beforeEach:

var mockConfig = {}; 

beforeEach(function() { 
    module('app'); 
    module(function ($provide) { 
     $provide.value('myConfig', mockConfig); 
    }); 
}); 

問題必須是與此beforeEach是因爲錯誤我得到的是對的myconfig依賴。

以下是錯誤:

uncaught Error: [$injecor:unpr] Unknown provider: myConfigProvider <- myConfig <- authorisation 
http://errors.angularjs.org/1.4.6/$injector/unpr?p0=myConfiProvider 
+0

我已經有點進一步了。我用beforeEach塊創建了一個新的js文件。現在我可以在原始測試文件中創建更多測試。但是,如果我用測試創建另一個文件,我再次得到依賴性錯誤。 –

回答

0

我設法通過創建一個虛擬實現的myconfig工廠,以便使用該測試文件來解決此問題。

angular.module('app').factory('myConfig', function() { 

    var env = 'test'; 

    return { 
     env: env 
    } 
}); 

此代碼位於與其餘測試一起加載的js文件中。