6

Karma 構成ファイルをセットアップしていますが、ngHtml2JsPreprocessor を介して実行されたテンプレートのテストに成功していないため、存在するいくつかのオプションを完全には理解していません。

 $templateCached

ngHtml2JsPreprocessor 内で、パスを含むいくつかの重要な値のプロパティを追加できます。

 ngHtml2JsPreprocessor: {

      stripPrefix: ".*/Went all the way back to the root of my application/",


     // moduleName: 'templatesCached'// 
    },

各ファイルにモジュールとしてアクセスできるようにするために、今のところテンプレートをコメントアウトしました。エラーなしでモジュールをロードしています。開発ツールで templateCached バージョンを見つけることができます。

beforeEach(module('template')); 

テンプレート フォルダーは、作成したベースパスの外にあります。

basePath: 'Scripts/',

プリプロセッサオブジェクト内で参照しています

  preprocessors: {
    '../Templates/**/*.html' : ['ng-html2js']
},

ここでも、すべてのテンプレートが js ファイルになり、キャッシュされます。

私はpackage.json の中にファイルを保存しました

save-dev

"karma-chrome-launcher": "^0.2.2",
"karma-jasmine": "^0.2.2",
"karma-ng-html2js-preprocessor": "^0.2.1",

プラグインで自分のインストールを参照しました。

  plugins: [
    'karma-chrome-launcher',
    'karma-jasmine',
    'karma-sinon',
    'karma-ng-html2js-preprocessor'
],

すべてのファイルをロードしました

files: [

  //jquery libaries
  // angular libraries
  // Scripts files
  // source app.js
  // tests folder and files
]

Karma の開始時にテストが実行されています

ただし、私のディレクティブは単なる空の文字列です

  element.html()  

戻り値 ""

私は吟遊詩人の注入を設定しました

bard.inject(
            "$compile",
            "$controller",
            "$rootScope",
            '$templateCache',
            "haConfig",
            "$q"
        );

これが私のbeforeEachの内部です

 bard.mockService(haConfig, {
            getTemplateUrl: '/tst!'
        });

        //bard.mockService(haConfig, {});
        console.log('ha config2', haConfig.getTemplateUrl());

        var html = angular.element("<div explore-hero></div>");

        console.log('htl',haConfig.getTemplateUrl());

        scope = $rootScope.$new();
        //templateCache
        element = $compile(html)(scope);
        //console.log(haConfig.getTemplateUrl(html));
        scope.$digest(element);
        console.log('missing text',haConfig.getTemplateUrl(html));

        controller = element.scope();

        console.log("element", element);

空の文字列が返される理由がわかりません。私はhtmlファイルを作成していますが、その中には何もありません。

templatesCached ファイルを開発ツールのフォルダーに表示する必要があるかどうか疑問に思うことはありますか? また、 karma.conf.js内の files 配列内でファイルを参照する必要があるかどうか。

現在、html ファイルを参照していますか? 私はjsファイルを試しましたが、それは何もしなかったようです

4

1 に答える 1