为什么Jest需要Babel来测试异步代码?

10

这篇Jest "异步示例"指南的开头是:

首先,在Jest中启用Babel支持...

但我不清楚Jest为什么需要Babel以及在哪里需要。

1个回答

12

从版本7.6.0开始,Node.js默认支持async函数,因此(如您所猜测的那样)Babel不需要用于使用async函数运行Jest测试。

我刚刚安装了Jest v24.6.0,并在Node.js v10.15.1中运行了此测试以确认这一点:

test('hi', async () => {
  const val = await Promise.resolve('hello');
  expect(val).toBe('hello');
});

......而且它通过了。


另一方面,使用ES6模块语法需要Babel

“一个异步示例”文档中的许多示例使用ES6模块语法(export default ...import * as ...等),因此任何这些示例都需要Babel才能正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接