Karma:如何模拟在 html 中声明的全局变量?

9bl*_*lue 4 unit-testing karma-runner karma-jasmine

我在 html 中声明了一个变量

<script>
    var actionUrl = '@Url.Action(action, "Designer")';
</script>
Run Code Online (Sandbox Code Playgroud)

以便可以在我要测试的 javascript 文件中调用变量 actionUrl。但是,由于单元测试隔离了每个要测试的文件,因此 actionUrl 在 karma 中变得未定义。我如何模拟这个变量?最佳做法是什么?

sbe*_*lin 6

  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的分支