早上好
我正在尝试使用 karma 测试我们相对较大的 Angular 应用程序(或者至少从一些测试开始)。我让它运行时遇到了一些小麻烦,但现在想知道;karma 提供了一个 beforeEach 函数,它在每个it
代码块之前被调用。使用 Angular 时,我(似乎是这样)module('app')
每次都必须在执行一个测试用例之前调用。这不是一个全面的性能障碍吗?我的意思是设置整个模块,因此应用程序完全浪费性能,不是吗?
当我将 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');
});
});
是的,我知道,缓存的问题已经解决了,但我确实对它失去了耐心:)
任何帮助将不胜感激,在此先感谢。