因果报应:如何模拟在html中声明的全局变量?
-
20-12-2019 - |
题
我有一个变量在html中声明为
<script>
var actionUrl = '@Url.Action(action, "Designer")';
</script>
以便变量actionUrl可以在我要测试的javascript文件中调用。但是,当单元测试隔离每个要测试的文件时,actionUrl在karma中变得未定义。我如何模拟这个变量?什么是最佳实践?
解决方案
- 如建议,通过调用
window.actionUrl = 'whatever';
- 或者,也许为模拟对象发明一些结构是有意义的
unit-tests
|
mocks -
| - module1.js
...
| - moduleN.js
| - globals.js
然后将所有全局对象放入 globals.js
并将其装入内部 karma.config.js
编辑:在角种子的叉子上增加了全局模拟 https://github.com/sbedulin/angular-js-dev-guide
不隶属于 StackOverflow