【发布时间】:2019-08-22 16:55:40
【问题描述】:
我得到了这个 math.js:
const sum = (a, b) => a + b
const mul = (a, b) => a * b
export default { sum, mul }
然后在 math.test.js 中:
const { sum, mul } = require('./math')
test('Adding 1 + 1 equals 2', () => {
expect(sum(1, 1)).toBe(2)
})
test('Multiplying 1 * 1 equals 1', () => {
expect(mul(1, 1)).toBe(1)
})
我从开玩笑中得到了这个错误:
? Adding 1 + 1 equals 2
TypeError: sum is not a function
5 | })
6 | test('Adding 1 + 1 equals 2', () => {
> 7 | expect(sum(1, 1)).toBe(2)
8 | })
9 |
如果我在测试文件中导入这些函数,jest 运行良好。 无法理解在 ES5 中获取外部函数的正确方法。
【问题讨论】:
-
你混合你的模块加载,。
require是 commonjs,尝试使用 import 代替。 -
ES5 没有模块。它们是在 ES2015(有时称为“ES6”)中引入的。
-
箭头函数也是如此,顺便说一句,这是 ES5 不兼容的另一件事。
-
对不起,我已经参加了在线教程......无论如何,谢谢我发现了这个问题!