我試圖測試我們相對較大的角應用與業力(或至少開始一些測試)。我知道它有一些小麻煩,但現在想知道; karma提供了一個beforeEach函數,它在每個it
代碼塊之前被調用。 使用角度時,我(似乎是這樣)每次執行一個測試用例之前都必須調用module('app')
。這不就是一個完整的表現封鎖嗎?我的意思是設置整個模塊,因此該應用程序是完全浪費的性能否?
當我把模塊(「應用程序」)中的呼叫beforeAll()函數,我收到 Error: [$injector:unpr] Unknown provider: CacheFactoryProvider <- CacheFactory
沒有人體驗?我做錯了什麼設置測試套件?
beforeAll()是不是允許像module('app')
這樣昂貴的調用只做一次?
下面是我簡單的測試之一,它在我張貼的狀態運行,所以我的問題是,僅僅是關於調用模塊多次的成本:S
/* jshint -W117, -W030 */
describe('blocks.filter.dateFormatter', function() {
var filter, cacheFactory;
//beforeAll(function() {
// module('app');
//});
// Code above leads to unknown provider error
beforeEach(function() {
module('app');
inject(['$filter', 'CacheFactory',
function($filter, $CacheFactory) {
filter = $filter;
cacheFactory = $CacheFactory;
cacheFactory.destroyAll();
}
]);
});
it('dateFormatter convert yyyy-MM-dd hh:mm:ss to dd.MM.yyyy', function() {
expect(filter('formatDate')('2015-09-28 00:00:00')).toBe('28.09.2015');
});
it('dateFormatter convert yyyy-MM-dd to dd.MM.yyyy', function() {
expect(filter('formatDate')('1960-05-05')).toBe('05.05.1960');
});
});
是的,我知道,這個問題與緩存解決醜陋,但我沒有失去它的耐心:)
任何幫助將不勝感激,在此先感謝。