Rumah > hujung hadapan web > tutorial js > Asas React~ujian unit/cangkuk tersuai

Asas React~ujian unit/cangkuk tersuai

Linda Hamilton
Lepaskan: 2024-11-01 11:06:02
asal
973 orang telah melayarinya
  • Apabila saya menguji komponen cangkuk tersuai, saya menggunakan renderHook yang diimport daripada @testing-library/react' dan tindakan yang diimport darireact-dom/test-utils'.

・src/App.tsx

import "./App.css";
import Counter from "./component/counter/Counter";

function App() {
  return (
    <div className="App">
      <Counter />
    </div>
  );
}

export default App;

Salin selepas log masuk

・src/component/counter/Counter.tsx

import React, { useState } from "react";
import { useCounter } from "../../hooks/useCounter";

const Counter = () => {
const { count, increment } = useCounter({ initialCount: 10 });

  return (
    <div>
      <h1>{count}</h1>
      <button onClick={() => increment()}>Increment</button>
    </div>
  );
};

export default Counter;

Salin selepas log masuk

・src/hooks/useCounter.tsx

import React, { useState } from "react";
import { UseCounterProps } from "./useCounter.type";

type UseCounterProps = {
  initialCount?: number;
};


export const useCounter = ({ initialCount = 0 }: UseCounterProps = {}) => {
  const [count, setCount] = useState(initialCount);
  const increment = () => setCount((prev) => prev + 1);

  return { count, increment };
};

Salin selepas log masuk

・src/hooks/useCounter.test.tsx

import { renderHook } from "@testing-library/react";
import { useCounter } from "./useCounter";
import { act } from "react-dom/test-utils";

describe("useCounter", () => {
  test("Should render the initial count", () => {
    const { result } = renderHook(useCounter, {
      initialProps: { initialCount: 10 },
    });
    expect(result.current.count).toBe(10);
  });

  test("Increment the  count", () => {
    const { result } = renderHook(useCounter);
    act(() => {
      result.current.increment();
    });
    expect(result.current.count).toBe(1);
  });
});

Salin selepas log masuk
  • Apabila saya lulus props, dalam kes ini ia adalah initialCount(=10), saya menambah property iaitu initialProps: { initialCount: 10 }.

  • Apabila saya menguji fungsi cangkuk tersuai, dalam kes ini kenaikan(), saya menggunakan akta dan memanggil kenaikan() di dalam panggilan balik.

・Kejayaan
React Basics~unit test/custom hook

・Kegagalan
React Basics~unit test/custom hook

・tindakan paparan
React Basics~unit test/custom hook

Atas ialah kandungan terperinci Asas React~ujian unit/cangkuk tersuai. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan