【发布时间】:2018-02-23 15:45:57
【问题描述】:
我很难弄清楚如何访问通常可用作浏览器中窗口对象的方法的函数。我正在使用 Karma、Headless Chrome 和 Jasmine。
这是我的问题的简化:
我有一个名为add-numbers-together.js的模块:
function addTogether(a, b) {
return a + b;
}
(function(){
addTogether(2,5);
})();
这个 Jasmine 测试正在测试它:
describe('add-numbers-together.js', function() {
it('Should add numbers together', function() {
require('module/add-numbers-together');
console.info(window.addTogether);
});
});
require 语句肯定是在检索模块 ok,我已经测试过了。
我希望 console.info 打印出函数的定义,就像我在实际浏览器中执行此操作时一样,但这个 console.info 返回 undefined。 这是为什么呢?在测试中需要模块后如何访问 addTogether 函数?
我猜这是 Jasmine 或 Headless Chrome 的一些怪癖,但无论我多么努力地搜索,我都无法在任何地方找到答案!
另外,请注意:我不想向模块本身添加任何测试代码,这不是我的选择。
【问题讨论】:
标签: javascript jasmine karma-jasmine google-chrome-headless jasmine2.0