【发布时间】:2022-10-01 01:06:33
【问题描述】:
我正在为响应式导航菜单使用 navbar.offcanvas 元素。我刚刚运行了我的测试,当我注释掉 navbar.offcanvas 元素时它通过了。我正在使用 React-Bootstrap、Jest 和 testing-library/react。
当我离开元素并运行测试时,我得到以下信息:
TypeError: targetWindow.matchMedia is not a function
56 | test(\"Try to render element\", () => {
57 | // Arrange
> 58 | render(<TodoList />);
| ^
我不确定为什么会发生这种情况。
这是 Navbar.Offcanvas
<Navbar.Offcanvas
id={`offcanvasNavbar-expand-md`}
aria-labelledby={`offcanvasNavbarLabel-expand-md`}
placement=\"start\"
>
<Offcanvas.Header closeButton>
<Offcanvas.Title id={`offcanvasNavbarLabel-expand-md`}>
Navigation
</Offcanvas.Title>
</Offcanvas.Header>
<Offcanvas.Body>
<Nav>
{pages.map((page) => {
return (
<Nav.Item key={page.path}>
<Nav.Link
href={page.path}
eventKey={page.path}
onSelect={(k) => setKey(k)}
className=\"layout-nav-link\"
>
{page.name}
</Nav.Link>
</Nav.Item>
);
})}
</Nav>
</Offcanvas.Body>
</Navbar.Offcanvas>
这是测试
test(\"Renders TodoList\", () => {
render(<TodoList />);
const todoList = screen.getByText(\"Todo List\");
expect(todoList).toHaveTextContent(\"Todo List\");
});
test(\"Type into TodoList input box\", () => {
// Arrange
render(<TodoList />);
const todoListInput = screen.getByLabelText(\"TodoId\");
console.log(todoListInput);
// Act
fireEvent.change(todoListInput, {
target: { value: \"Run\" },
});
// Assert
expect(todoListInput.value).toBe(\"Run\");
// Act
fireEvent.change(todoListInput, {
target: { value: \"\" },
});
// Assert
expect(todoListInput.value).toBe(\"\");
});
如果您需要任何其他信息,请告诉我。谢谢!
标签: reactjs jestjs react-bootstrap react-testing-library testing-library