gpt4 book ai didi

css - 如何使用 react-testing-library 测试 React 组件的 css 属性?

转载 作者:行者123 更新时间:2023-12-03 19:11:09 27 4
gpt4 key购买 nike

react-testing-library 背后的理念对我来说很有意义,但我正在努力将它应用于 css 属性。

例如,假设我有一个简单的切换组件,单击时显示不同的背景颜色:

import React, { useState } from "react";
import "./Toggle.css";

const Toggle = () => {
const [ selected, setSelected ] = useState(false);
return (
<div className={selected ? "on" : "off"} onClick={() => setSelected(!selected)}>
{selected ? "On" : "Off"}
</div>
);
}

export default Toggle;

.on {
background-color: green;
}

.off {
background-color: red;
}

我应该如何测试这个组件?我编写了以下测试,它适用于内联组件样式,但在使用 css 类时失败,如上所示。

import React from "react";
import { render, screen, fireEvent } from "@testing-library/react";
import Toggle from "./Toggle";

const backgroundColor = (element) => window.getComputedStyle(element).backgroundColor;

describe("Toggle", () => {
it("updates the background color when clicked", () => {
render(<Toggle />);
fireEvent.click(screen.getByText("Off"));
expect(backgroundColor(screen.getByText("On"))).toBe("green");
});
});

最佳答案

所以这不是单元或集成测试框架所做的。他们只测试逻辑。

如果你想测试样式,那么你需要一个像 Selenium 这样的端到端/快照测试框架。

关于css - 如何使用 react-testing-library 测试 React 组件的 css 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62140331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com