如何测试依赖于其模块本地状态的ECMAScript模块(ESM)(或JavaScript模块)的功能?具体来说,我想模拟模块中的本地状态。
根据本文http://exploringjs.com/es6/ch_modules.html,我了解到:
import
是export
上的只读视图因此,尽管我可以导出局部变量,然后从测试中导入该局部变量,然后对其进行修改,因为它是只读的,所以我会报错。
问)如何模拟ES6模块的本地状态?输入时:
示例sumModule.js
-如我希望的那样,我该如何模拟它来设置总和以进行测试?零,可能不合适。
let sum = 0 // local state - type number example
export function addToSum (num) {
sum += num;
return sum
}
答案 0 :(得分:0)
我通过添加仅用于测试的新功能解决了这个问题:
export function setMockNum (mock) {
num = mock
}
我也可以对函数和对象做同样的事情。
它可读(意图很明确),它使我可以前进。