Rumah > hujung hadapan web > tutorial js > Asas Bertindakbalas~ujian unit/ui

Asas Bertindakbalas~ujian unit/ui

Linda Hamilton
Lepaskan: 2024-10-20 16:41:02
asal
263 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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan