【发布时间】:2021-09-04 03:52:33
【问题描述】:
我在我的函数组件中使用 useAsync() 钩子。该组件在上一步点击next按钮后在material-ui stepper的最后一步渲染,是一个单独的组件。
const memberStatus = useAsync(async () => {
await addMembersToTeam(props.projectName, props.teamName, props.members);
}, []);
下面是我测试的sn-p:
const promise = new Promise<any>((_resolve, reject) => {
reject(new Error('failed'))
})
mocked(mockAddMembersToTeam).mockRejectedValue(promise)
const nextButton = await rendered.findByRole('button', { name: /next/ });
expect(nextButton).toBeEnabled();
userEvent.click(nextButton);
await waitFor(() => { expect(mockAddMembersToTeam).toHaveBeenCalledOnce() })
const errorAlert = await waitFor(() =>
rendered.getByTestId('membersStatusErrorMsg'),
);
const expectedAlert = 'Issue Adding Members.';
expect(errorAlert.textContent).toBe(expectedAlert);
测试失败,如下:
ReferenceError: You are trying to access a property or method of the Jest environment after it has been torn down.
failed
281 | const promise = new Promise<any>((_resolve, reject) => {
> 282 | reject(new Error('failed'))
| ^
283 | })
感谢您对此问题的任何见解。谢谢。
【问题讨论】:
标签: reactjs react-testing-library react-testing