Asas Bertindakbalas~ujian unit/ui

Linda Hamilton
Lepaskan: 2024-10-20 16:41:02
asal
115 orang telah melayarinya
  • Apabila saya menguji kod semasa, iaitu ujian unit, saya menggunakan beberapa alatan. Mereka adalah pustaka gurauan dan ujian reaksi.

・src/Example.js

import Greet from "./components/Greet";

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

export default Example;

Salin selepas log masuk

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

Salin selepas log masuk

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


Salin selepas log masuk
  • Fungsi ujian ialah fungsi ujian.

  • Hujah pertama ialah tajuk ujian. Argumen kedua ialah fungsi panggil balik yang melaksanakan kod ujian.

-Dalam fungsi panggil balik, saya perlu membuat komponen yang akan diuji menggunakan fungsi render. Dan saya boleh menggunakan nyahpepijat dan bekas jika perlu.

const { debug, container } = render(<Greet />);
Salin selepas log masuk
  • Dan kemudian, saya perlu mendapatkan elemen menggunakan skrin.*.
    Terdapat banyak fungsi seperti getByText(), getByRole(), getByAltText() dan sebagainya.

  • Akhir sekali, saya perlu tahu sama ada elemen itu wujud dalam dokumen, menggunakan expect(elemen yang saya dapat sebelum ini).toBeInTheDocument();.

  • Selepas menulis kod ujian, saya perlu menjalankan perintah npm test ini.

・Kejayaan(Taest lulus)

React Basics~unit test/ui

・Kegagalan(Taest gagal)

React Basics~unit test/ui

Atas ialah kandungan terperinci Asas Bertindakbalas~ujian unit/ui. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!