The*_*ser 14 unit-testing reactjs react-testing-library
我正在尝试用于userEvent测试 UI 交互。但是,它似乎无法正常工作。我用这个文档作为参考。是否需要进行一些必要的设置才能使其正常工作?
这是测试代码:
test('A', () => {
//setup
const user = userEvent.setup();
const sensing = jest.fn();
const subject = (<button onClick={sensing}>testButton</button>);
render(subject);
// run
user.click(screen.getByText('testButton'));
// check
expect(sensing).toBeCalledTimes(1);
});
Run Code Online (Sandbox Code Playgroud)
使用fireEvent.click代替确实user.click有效。
package.json 的一部分
"react": "^18.1.0",
"react-dom": "^18.1.0",
"@storybook/react": "^6.4.22",
"@storybook/testing-library": "^0.0.9",
"@testing-library/dom": "^8.13.0",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.2.0",
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "^14.2.0",
...
Run Code Online (Sandbox Code Playgroud)
The*_*ser 28
UserEvent需要await。所以你想这样写:
test('A', async () => {
//setup
const user = userEvent.setup();
const sensing = jest.fn();
const subject = (<button onClick={sensing}>testButton</button>);
render(subject);
// run
await user.click(screen.getByText('testButton'));
// check
expect(sensing).toBeCalledTimes(1);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14240 次 |
| 最近记录: |