AngularJSで$templateCacheを使っている場合のテスト環境
ちなみにgenerator-angularで作成したプロジェクト。
developmentやbuildではgrunt-angular-templatesを使っているが、テストには、karma-ng-html2js-preprocessorを使った。
インストール
% npm install karma-ng-html2js-preprocessor --save-dev
karma.confに設定を追加
#karma.conf.coffee files: [ # ...省略... "app/templates/*.html" #<- テンプレートファイルを追加 "test/mock/**/*.coffee" "test/spec/**/*.coffee" ] plugins: [ "karma-phantomjs-launcher" "karma-jasmine" "karma-coffee-preprocessor" "karma-spec-reporter" "karma-coverage" "karma-ng-html2js-preprocessor" #<- 追加 ] preprocessors: "app/templates/*.html": ["ng-html2js"] # <- 追加 "app/scripts/*.coffee": "coffee" "app/scripts/*/**/*.coffee": "coverage" "test/**/*.coffee": "coffee" # 追加 ngHtml2JsPreprocessor: stripPrefix: "app/" moduleName: "test.templates" #<- 本番とは別に任意に設定した
あとはtemplateCacheのテンプレートを使っている部分のテストで beforeEach module "myApp", "test.templates"とか読みこめばOK.