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

时间:2014-07-28 19:13:51

标签: unit-testing karma-runner karma-jasmine

我有一个在html中声明为

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

这样可以在我想测试的javascript文件中调用变量actionUrl。 但是,当单元测试隔离每个文件以进行测试时,actionUrl在karma中变为未定义。我如何模拟这个变量?什么是最佳做法?

1 个答案:

答案 0 :(得分:4)

  1. 根据建议,致电window.actionUrl = 'whatever';
  2. 或者为模拟对象创建一些结构可能是有意义的
  3. unit-tests | mocks - | - module1.js ... | - moduleN.js | - globals.js

    然后将所有全局对象放在globals.js中并将其加载到karma.config.js

    编辑:将全局模拟添加到Angular Seed https://github.com/sbedulin/angular-js-dev-guide

    的分支中