为什么在 Jest 测试中 async() 转换为 asyncfunction()?
Why async () transform to async function () in Jest tests?
我的笑话测试用例类似于:
test('should update state.focus', async () => {
let component = getComponent()
component.setState({focus: true})
expect(component.state().focus).toEqual(true)
component.instance().handleBlur()
await expect(component.state().focus).toEqual(false)
})
这在本地开发环境中工作正常。但是它在竹子上失败并给出以下错误:
test('should update state.focus', async function () {
^^^^^
SyntaxError: missing ) after argument list
at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/ScriptTransformer.js:289:17)
at handle (node_modules/worker-farm/lib/child/index.js:41:8)
at process.<anonymous> (node_modules/worker-farm/lib/child/index.js:47:3)
at emitTwo (events.js:106:13)
我正在使用 jest - 20.0.3 和 babel-jest 20.0.3
我遇到了完全相同的问题。我可以通过安装 babel-preset-es2017
包然后在 .babelrc
中使用它来解决它
{
"presets": ["es2017"]
}
我的笑话测试用例类似于:
test('should update state.focus', async () => {
let component = getComponent()
component.setState({focus: true})
expect(component.state().focus).toEqual(true)
component.instance().handleBlur()
await expect(component.state().focus).toEqual(false)
})
这在本地开发环境中工作正常。但是它在竹子上失败并给出以下错误:
test('should update state.focus', async function () {
^^^^^
SyntaxError: missing ) after argument list
at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/ScriptTransformer.js:289:17)
at handle (node_modules/worker-farm/lib/child/index.js:41:8)
at process.<anonymous> (node_modules/worker-farm/lib/child/index.js:47:3)
at emitTwo (events.js:106:13)
我正在使用 jest - 20.0.3 和 babel-jest 20.0.3
我遇到了完全相同的问题。我可以通过安装 babel-preset-es2017
包然后在 .babelrc
{
"presets": ["es2017"]
}