Maison > interface Web > js tutoriel > Bases de React ~ test unitaire/interface utilisateur

Bases de React ~ test unitaire/interface utilisateur

Linda Hamilton
Libérer: 2024-10-20 16:41:02
original
241 Les gens l'ont consulté
  • Lorsque je teste le code actuel, qui est un test unitaire, j'utilise certains outils. Ce sont des bibliothèques de plaisanteries et de tests de réaction.

・src/Example.js

import Greet from "./components/Greet";

const Example = () => {
  return <Greet />;
};

export default Example;

Copier après la connexion

・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;

Copier après la connexion

・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();
});


Copier après la connexion
  • La fonction test est une fonction de test.

  • Le premier argument est un titre de test. Le deuxième argument est une fonction de rappel qui exécute le code de test.

-Dans la fonction de rappel, je dois restituer un composant qui sera testé à l'aide d'une fonction de rendu. Et je peux utiliser le débogage et le conteneur si nécessaire.

const { debug, container } = render(<Greet />);
Copier après la connexion
  • Et puis, j'ai besoin d'obtenir un élément en utilisant screen.*.
    Il existe de nombreuses fonctions comme getByText(), getByRole(), getByAltText() et ainsi de suite.

  • Enfin, j'ai besoin de savoir si l'élément existe dans le document, en utilisant expect(element which I got before).toBeInTheDocument();.

  • Après avoir écrit le code de test, je dois exécuter cette commande npm test.

・Succès(Le test est passé)

React Basics~unit test/ui

・Échec(Le test a échoué)

React Basics~unit test/ui

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal