Wenn ich aktuellen Code teste, kann ich die Beschreibungsfunktion verwenden, um die Codes in Gruppen zu unterteilen.
In diesem Fall habe ich eine Zähler-App erstellt.
・src/Example.jsx
import Counter from "./components/Counter"; const Example = () => { const originCount = 0; return <Counter originCount={originCount}></Counter>; }; export default Example;
・src/components/Counter.jsx
import { useState } from "react"; const Counter = (props) => { const { originCount } = props; const [count, setCount] = useState(originCount); const countUp = () => { setCount(count + 1); }; const countDown = () => { setCount(count - 1); }; const countClear = () => { setCount(0); }; return ( <div> <h2>Counter test</h2> <div> <span>Current count:{count}</span> </div> <div> <button onClick={countUp}>Countup</button> <button onClick={countDown}>Countdown</button> <button onClick={countClear}>Clear</button> </div> </div> ); }; export default Counter;
・src/components/Counter.test.jsx
import { fireEvent, render, screen } from "@testing-library/react"; import Counter from "./Counter"; //A group for initial test describe("Counter", () => { describe("Check the initial display", () => { // ① A Confirming the Initial State test("Whether test("Whether the current count is 0 or not", () => { render(<Counter originCount={0} />); const spanElBeforeUpdate = screen.getByText("Current count:0"); expect(spanElBeforeUpdate).toBeInTheDocument(); }); }); //A group for actions tests describe("Control buttons", () => { // ① count up test("Whether the current count changes into 1 or not, in case the countup button is clicked", () => { render(<Counter originCount={0} />); const spanElBeforeUpdate = screen.getByText("Current count:0"); expect(spanElBeforeUpdate).toBeInTheDocument(); const btn = screen.getByRole("button", { name: "Countup" }); fireEvent.click(btn); const spanEl = screen.getByText("Current count:1"); expect(spanEl).toBeInTheDocument(); }); // ② count down test("Whether the current count changes into -1 or not, in case the countdown button is clicked ", () => { render(<Counter originCount={0} />); const spanElBeforeUpdate = screen.getByText("Current count:0"); expect(spanElBeforeUpdate).toBeInTheDocument(); const btn = screen.getByRole("button", { name: "Countdown" }); fireEvent.click(btn); const spanEl = screen.getByText("Current count:-1"); expect(spanEl).toBeInTheDocument(); }); // ③ count clear test("Whether the current count changes into 0 or not, in case the clear button is clicked ", () => { render(<Counter originCount={0} />); const spanElBeforeUpdate = screen.getByText("Current count:0"); expect(spanElBeforeUpdate).toBeInTheDocument(); const btn = screen.getByRole("button", { name: "Clear" }); fireEvent.click(btn); const spanEl = screen.getByText("Current count:0"); expect(spanEl).toBeInTheDocument(); }); }); });
・Zählen Sie hoch
・Countdown
・Countdown
・Erfolg
・Fehler
Das obige ist der detaillierte Inhalt vonReact Basics ~ Unit-Test/Describe-Test. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!