Angularjs 使用业力、角度缓存和beforeach Fn

Angularjs 使用业力、角度缓存和beforeach Fn,angularjs,jasmine,karma-jasmine,angular-cache,Angularjs,Jasmine,Karma Jasmine,Angular Cache,早上好 我试图用karma测试我们相对较大的angular应用程序(或者至少从一些测试开始)。我让它运行时遇到一些小麻烦,但我现在想知道;karma提供了beforeach函数,它在每个it代码块之前调用。 当使用angular时,我(似乎是这样)必须在每次执行一个测试用例之前调用模块('app')。这不是一个完全的性能拦截器吗?我的意思是设置整个模块,因此应用程序完全是在浪费性能不 当我将模块('app')调用放入beforeAll()函数时,我收到一个 错误:[$injector:unpr]

早上好

我试图用karma测试我们相对较大的angular应用程序(或者至少从一些测试开始)。我让它运行时遇到一些小麻烦,但我现在想知道;karma提供了beforeach函数,它在每个
it
代码块之前调用。 当使用angular时,我(似乎是这样)必须在每次执行一个测试用例之前调用
模块('app')
。这不是一个完全的性能拦截器吗?我的意思是设置整个模块,因此应用程序完全是在浪费性能不

当我将模块('app')调用放入beforeAll()函数时,我收到一个
错误:[$injector:unpr]未知提供程序:CacheFactoryProvider单独加载模块不会对性能造成太大的影响(您测量了吗?),但是如果您想使用
beforeAll()
您应该使用
模块.sharedInjector()
。在中查找“使用之前”

/* 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');
    });

});