カルマ:HTMLで宣言されたグローバル変数をモックするにはどうすればよいですか?
-
20-12-2019 - |
質問
HTMLで次のように宣言された変数があります
<script>
var actionUrl = '@Url.Action(action, "Designer")';
</script>
これにより、テストする JavaScript ファイル内で変数 actionUrl を呼び出すことができます。ただし、単体テストではテスト対象の各ファイルが分離されるため、actionUrl は Karma で未定義になります。この変数をモックするにはどうすればよいですか?ベストプラクティスは何ですか?
解決
- 提案どおり、電話することで
window.actionUrl = 'whatever';
- あるいは、モックオブジェクト用の構造を発明するのが理にかなっているかもしれません。
unit-tests
|
mocks -
| - module1.js
...
| - moduleN.js
| - globals.js
そして、すべてのグローバルオブジェクトを globals.js
そして中にロードします karma.config.js
編集:Angular Seed のフォークにグローバル モックを追加しました https://github.com/sbedulin/angular-js-dev-guide
所属していません StackOverflow