Jest.js React测试库在测试之间泄漏,DOM持久化

vd8tlhqk  于 2023-08-01  发布在  Jest
关注(0)|答案(1)|浏览(107)

我是测试新手,我试图弄清楚如何在每次测试后重置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"
  }

olmpazwi

olmpazwi1#

清理确实是自动完成的Jest + React测试库,就像你提到的那样。
TaskList是否有可能以“Title”作为占位符文本呈现多个项目?您可以通过使用getAllByPlaceholderText找到答案

相关问题