2016-05-09 10 views
1

おはようカルマ、角度キャッシュとbeforeEach Fnを使用する

私はカルマで比較的大きな角度のアプリをテストしようとしています(または少なくともいくつかのテストから始める)。私はいくつかの小さなトラブルで走るようにしましたが、今は不思議です。カルマは、すべてitコードブロックの前に呼び出されるbeforeEach関数を提供します。 角度を使用する場合、1つのテストケースを実行する前に毎回module('app')を呼び出す必要があります。それは完全なパフォーマンスブロッカーではありませんか?私は全体のモジュールを設定することを意味し、したがって、アプリケーションはパフォーマンスの総無駄ですいいえ?

私はbeforeAll()関数内のモジュール(「アプリ」)電話をかけたとき、私は Error: [$injector:unpr] Unknown provider: CacheFactoryProvider <- CacheFactory

を受け取る誰もがそれを体験しましたか?テストスイートをセットアップするのは間違っていますか?

module('app')のような高価な呼び出しを1回だけ行うことができるようにするbeforeAll()の考え方はありませんか?以下は

は、私はそれを掲示状態で動作します私の簡単なテストの一つ、ですので、私の質問は、モジュールを複数回呼び出しの費用について、単にである: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

モジュールを単独でロードするとパフォーマンスが大幅に低下することはありませんが、beforeAll()を使用する場合はmodule.sharedInjector()を使用してください。 this pageの「beforeAllを使用する」を探します。

関連する問題