例如:我的math_util.js是
我将使用Jest来测试add()函数。因此,我会编写以下代码:
var MathUtil = function(){
function add(a,b){
return a + b;
}
return {
add: add
};
}
我将使用Jest来测试add()函数。因此,我会编写以下代码:
test('add', ()=>{
expect(MathUtil().add(1,1)).toBe(2);
});
但是我得到了“MathUtil未定义”或“MathUtil()不是函数”的错误。
我还尝试使用require()
或import
。 但是MathUtil
没有module.export
或export
。
那么如何使用Jest编写javascript揭示模块模式的单元测试呢?
注意:我的项目中所有脚本都是使用揭示模块模式编写的,因此将所有脚本转换为ES2015模块可能并不实际。
MathUtil
函数?似乎测试没有以任何方式导入它。 - Tsvetan GanevMathUtil
添加到作用域中?MathUtil
没有任何导出,因此我认为无法使用 import。 - Chanhwindow
,并且顶层变量声明不像在浏览器中那样在全局范围内。你考虑过使用浏览器内测试运行程序和phantom吗? - Jared Smithwindow
对象,可以使用 setupFiles 来设置诸如全局变量之类的东西...话虽如此,我同意模块绝对是最佳实践。 - Brian Adams