・src/Example.js
import Greet from "./components/Greet"; const Example = () => { return <Greet />; }; export default Example;
・src/component/Greet.jsx
const Greet = () => { return ( <div> <form> <h1>Hello</h1> <input type="radio" /> <label htmlFor="fullname">Fullname</label> <input id="fullname" type="text" placeholder="Fullname" /> <button>button1</button> <button>button2</button> <img src="/logo512.png" alt="React Logo" /> <h2>Hello2</h2> </form> </div> ); }; export default Greet;
・src/component/Greet.test.jsx
import { render, screen } from "@testing-library/react"; import Greet from "./Greet"; test("Whether elements exists or not", () => { const { debug, container } = render(<Greet />); //get the h1 element const h1El = screen.getByText("Hello"); expect(h1El).toBeInTheDocument(); //get the h2 element by specifying the name const headEl = screen.getByRole("heading", { name: "Hello2" }); debug(headEl); expect(headEl).toBeInTheDocument(); //get radio button const radioEl = screen.getByRole("radio"); debug(radioEl); expect(radioEl).toBeInTheDocument(); //get the img element const imgEl = screen.getByRole("img"); debug(imgEl); expect(imgEl).toBeInTheDocument(); //get the h1 element by getting the alt const imgEl2 = screen.getByAltText("React Logo"); debug(imgEl2); expect(imgEl2).toBeInTheDocument(); //get the h2 element by using the querySelector of container const h2El = container.querySelector("h2"); debug(h2El); expect(h2El).toBeInTheDocument(); //get an element by getting the labe const elByLabel = screen.getByLabelText("Fullname"); debug(elByLabel); expect(elByLabel).toBeInTheDocument(); //get an element by getting the placeholder const elByPlaceholder = screen.getByPlaceholderText("Fullname"); debug(elByPlaceholder); expect(elByPlaceholder).toBeInTheDocument(); });
Die Testfunktion ist eine Testfunktion.
Das erste Argument ist ein Testtitel. Das zweite Argument ist eine Rückruffunktion, die den Testcode ausführt.
-In der Rückruffunktion muss ich eine Komponente rendern, die mithilfe einer Renderfunktion getestet wird. Und ich kann bei Bedarf Debug und Container verwenden.
const { debug, container } = render(<Greet />);
Und dann muss ich ein Element mithilfe von screen.* abrufen.
Es gibt viele Funktionen wie getByText(), getByRole(), getByAltText() und so weiter.
Zuletzt muss ich mithilfe von „expect(element, das ich zuvor erhalten habe).toBeInTheDocument();“ herausfinden, ob das Element im Dokument vorhanden ist.
Nachdem ich den Testcode geschrieben habe, muss ich diesen Befehl npm test ausführen.
・Erfolg (Die Prüfung bestanden)
・Fehler (Der Taest ist fehlgeschlagen)
Das obige ist der detaillierte Inhalt vonReact Basics~Unit Test/UI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!