{ inconvénients"/> { inconvénients">
Maison >interface Web >js tutoriel >React Basics ~ test unitaire/test de description
Lorsque je teste un code actuel, je peux utiliser la fonction de description pour diviser les codes en groupes.
Dans ce cas, j'ai créé une application de compteur.
・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(); }); }); });
・Compte
・Compte à rebours
・Compte à rebours
・Succès
・Échec
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!