我正在编写一个JavaScript库,该JavaScript库在另一个js库上调用方法。 大多数时候,我会创建第三方库的模拟函数并对其进行监视。但是,它似乎不起作用。
例如:
mymain.js
export const checkForExternalFunc = () => {
try {
return com.externalFunc
} catch (error) {
return false
}
}
mymain_spec.js
import { checkForExternalFunc } from './src';
describe('checkForExternalFunc', () => {
let com = com || {};
com.externalFunc = function () {
return true;
};
it('return the function when com.externalFunc is present', () => {
spyOn(com, "externalFunc");
let check = checkForExternalFunc();
expect(check).toBe(jasmine.Any(function));
});
})
这会给我一个错误
ReferenceError: com is not defined
第三部分库中的功能
var com = com || {};
com.externalFunc = function () {
// return something
};
任何建议我该如何处理?我也与Sinon一起对Stub进行了一些研究,但不确定如何正确使用它。任何帮助将不胜感激。谢谢!
注意:我使用webpack + babel,业力,茉莉花来设置项目。
答案 0 :(得分:0)
感谢@AdityaBhave指出。我只需要确保我的模拟函数和实际的函数实际上是相同的。请参阅上面的评论。