カルマ:HTMLで宣言されたグローバル変数をモックするにはどうすればよいですか?

StackOverflow https://stackoverflow.com//questions/25002585

質問

HTMLで次のように宣言された変数があります

<script>
    var actionUrl = '@Url.Action(action, "Designer")';
</script>

これにより、テストする JavaScript ファイル内で変数 actionUrl を呼び出すことができます。ただし、単体テストではテスト対象の各ファイルが分離されるため、actionUrl は Karma で未定義になります。この変数をモックするにはどうすればよいですか?ベストプラクティスは何ですか?

役に立ちましたか?

解決

  1. 提案どおり、電話することで window.actionUrl = 'whatever';
  2. あるいは、モックオブジェクト用の構造を発明するのが理にかなっているかもしれません。

unit-tests | mocks - | - module1.js ... | - moduleN.js | - globals.js

そして、すべてのグローバルオブジェクトを globals.js そして中にロードします karma.config.js

編集:Angular Seed のフォークにグローバル モックを追加しました https://github.com/sbedulin/angular-js-dev-guide

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top