【发布时间】:2015-06-18 22:18:22
【问题描述】:
我正在测试一个 API,它在函数末尾的回调中已经有一个回调。我想将其包装在测试中以验证对象是否正确,但这似乎不起作用。 callbackEnd() 被调用,仅此而已。
在库上一个脚本加载成功:
function callback() {
// populate gpt object
if(typeof callbackEnd === 'function') {
callbackEnd();
}
}
Mocha.js 测试:
"use strict";
(function() {
describe("Callback Success", function() {
function callbackEnd() {
console.log('callbackEnd() called');
it('GPT returned advars', function() {
expect(Object.keys(someobj).length).to.beGreaterThan(0);
console.log('GPT loaded successfully, ' + Object.keys(someobj).length);
});
}
});
})();
【问题讨论】:
-
您确定在 mocha 测试中声明的 callbackEnd() 已执行,还是 callbackEnd 来自其他地方? (因为 mocha 测试中的 callbackEnd 在 iife 中,我认为它不能在该范围之外加入。
-
是的,函数 callbackEnd() 被执行,但 it() 没有被执行。我确定这是某种范围问题,但不确定如何设置
标签: javascript asynchronous mocha.js karma-mocha mocha-phantomjs