sku*_*ube 3 unit-testing reactjs react-testing-library
使用 React 测试库来测试对话框提供程序。我可以让它打开,并在它出现时断言 - 但由于某种原因我无法在测试中关闭它。我需要重新渲染吗?
test('await the closing or confirming of the modal', async () => {
const { debug, getByText, queryByText } = render(
<DialogProvider>
<Test />
</DialogProvider>,
);
const openDialogButton = getByText(/click me/i);
fireEvent.click(openDialogButton);
await wait(() => getByText(/ok/i));
fireEvent.click(getByText(/ok/i));
debug();
});
function Test() {
const confirm = useConfirmation();
return (
<button
onClick={() => {
confirm({ variant: 'info' });
}}
>
click me
</button>
);
}
Run Code Online (Sandbox Code Playgroud)
显然,以下似乎有效
await waitForElement(() => getByText(/ok/i));
fireEvent.click(getByText(/ok/i));
await waitForElementToBeRemoved(() => queryByText(/ok/i));
expect(queryByText(/ok/i)).toBeNull();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6451 次 |
| 最近记录: |