早上好
我正试图用业力来测试我们相对较大的角度应用程序(或者至少从一些测试开始)。我得到了一些小问题,但我现在想知道; karma提供了一个beforeEach函数,它在每个it
代码块之前调用。
当使用angular时,我(似乎是这样)每次执行一个测试用例之前都必须调用module('app')
。这不是一个完整的性能阻滞器吗?我的意思是设置整个模块,因此应用程序完全浪费性能没有?
当我将模块(' app')调用到beforeAll()函数中时,我收到了
Error: [$injector:unpr] Unknown provider: CacheFactoryProvider <- CacheFactory
有没有人经历过这种情况?设置测试套件我做错了什么?
是不是想让beforeAll()允许module('app')
这样的costy调用只进行一次?
下面是我的一个简单测试,它在我发布的状态下运行,所以我的问题只是关于多次调用模块的成本: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');
});
});
是的我知道,缓存的问题很难解决,但我对它失去了耐心:)
任何帮助将不胜感激,提前谢谢。
答案 0 :(得分:0)
单独加载模块不应该是性能损失(你测量它吗?),但如果你想使用beforeAll()
,你应该使用module.sharedInjector()
。寻找&#34;使用beforeAll&#34;在this page。