我是测试新手,我试图弄清楚如何在每次测试后重置DOM,使每个测试用例都是独立的。在下面的代码中,我简单地复制了一个测试,第一个通过了,但第二个失败了,并显示消息:第一个月
因此,测试不会删除第一个示例。这是正常的行为吗?如何在测试之间重置?我尝试使用jest文档和react测试库文档中的cleanup
方法,但这不起作用,根据文档,无论如何,它应该在每次测试后重置。
import { render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import TaskList from './TaskList';
describe('TaskList Component', () => {
it('Adds a new task when the add button is clicked', async () => {
const user = userEvent.setup();
const { getByPlaceholderText, getByAltText } = render(<TaskList />);
const addButton = getByAltText('add');
await user.click(addButton);
expect(getByPlaceholderText('Title')).toBeInTheDocument();
});
it('Adds a new task when the add button is clicked', async () => {
const user = userEvent.setup();
const { getByPlaceholderText, getByAltText } = render(<TaskList />);
const addButton = getByAltText('add');
await user.click(addButton);
expect(getByPlaceholderText('Title')).toBeInTheDocument();
});
});
字符串
我使用了以下软件包:
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
},
"devDependencies": {
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^14.4.3",
"@types/jest": "^29.5.3",
"@types/react": "^18.0.37",
"@vitejs/plugin-react": "^4.0.0",
"identity-obj-proxy": "^3.0.0",
"jest": "^29.6.1",
"jest-environment-jsdom": "^29.6.1",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.1",
"typescript": "^5.0.2",
"vite": "^4.3.9"
}
型
1条答案
按热度按时间olmpazwi1#
清理确实是自动完成的Jest + React测试库,就像你提到的那样。
TaskList是否有可能以“Title”作为占位符文本呈现多个项目?您可以通过使用
getAllByPlaceholderText
找到答案