我正在尝试做一个简单的异步测试,该测试调用一个与ContextAPI和useState方法交互的函数
以下是代码段:
it('should append submited value to feed', async () => {
const input = FakeElement.getByTestId('input') as HTMLInputElement
fireEvent.change(input, { target: { value: 'testing' } })
expect(input.value).toBe('testing')
await feedSubmitHandler(Ev, Ref, Feed, SetFeed)
expect(Feed.messages).toContain('testing')
})
请明确说明: feedSubmitHandler是一种类型的函数(ev:事件,ref:React.Ref,Feed:Object,setFeed:setStateAction)=> void
此测试可完美运行,但仅在异步等待状态下才可预期。
问题是TSServer高亮显示await feedSubmitHandler...
行,告诉我“等待对这种类型的表达式没有影响”
那是为什么? 如何正确设置它以便不会出现问题?
总结一下。整个问题是关于Jest,Typescript和TSServer的一些错误配置。我不想承认它不应该抱怨我正在“等待”一个在此测试场景中返回void的函数。
我考虑过可能只为测试设置另一个tsconfig.test.json文件,但我不确定如何优雅地做到这一点。