登录
首页 >  文章 >  前端

React 基础知识~单元测试/描述测试

来源:dev.to

时间:2024-11-19 16:13:06 499浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《React 基础知识~单元测试/描述测试》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

React 基础知识~单元测试/描述测试

  • 当我测试一些当前代码时,我可以使用describe函数将代码分组。

  • 在本例中,我创建了一个计数器应用程序。

・src/example.jsx

import counter from "./components/counter";

const example = () => {
  const origincount = 0;

  return <counter origincount={origincount}></counter>;
};

export default example;

・src/components/counter.jsx

import { usestate } from "react";

const counter = (props) => {
  const { origincount } = props;
  const [count, setcount] = usestate(origincount);

  const countup = () => {
    setcount(count + 1);
  };

  const countdown = () => {
    setcount(count - 1);
  };

  const countclear = () => {
    setcount(0);
  };

  return (
    <div>
      <h2>counter test</h2>
      <div>
        <span>current count:{count}</span>
      </div>
      <div>
        <button onclick={countup}>countup</button>
        <button onclick={countdown}>countdown</button>
        <button onclick={countclear}>clear</button>
      </div>
    </div>
  );
};

export default counter;

・src/components/counter.test.jsx

import { fireEvent, render, screen } from "@testing-library/react";
import Counter from "./Counter";

//A group for initial test
describe("Counter", () => {
 describe("Check the initial display", () => {

  // ① A Confirming the Initial State
    test("Whether 
    test("Whether the current count is 0 or not", () => {
      render(<Counter originCount={0} />);

      const spanElBeforeUpdate = screen.getByText("Current count:0");
      expect(spanElBeforeUpdate).toBeInTheDocument();
    });
  });

  //A group for actions tests
  describe("Control buttons", () => {

    // ① count up
    test("Whether the current count changes into 1 or not, in case the 
      countup button is clicked", () => {
      render(<Counter originCount={0} />);

      const spanElBeforeUpdate = screen.getByText("Current count:0");
      expect(spanElBeforeUpdate).toBeInTheDocument();

      const btn = screen.getByRole("button", { name: "Countup" });
      fireEvent.click(btn);

      const spanEl = screen.getByText("Current count:1");
      expect(spanEl).toBeInTheDocument();
    });
  
  // ② count down 
    test("Whether the current count  changes into -1 or not, in case the 
      countdown button is clicked ", () => {
      render(<Counter originCount={0} />);

      const spanElBeforeUpdate = screen.getByText("Current count:0");
      expect(spanElBeforeUpdate).toBeInTheDocument();

      const btn = screen.getByRole("button", { name: "Countdown" });
      fireEvent.click(btn);

      const spanEl = screen.getByText("Current count:-1");
      expect(spanEl).toBeInTheDocument();
    });

  // ③ count clear 
    test("Whether the current count changes into 0 or not, in case the 
      clear button is clicked ", () => {
      render(<Counter originCount={0} />);

      const spanElBeforeUpdate = screen.getByText("Current count:0");
      expect(spanElBeforeUpdate).toBeInTheDocument();

      const btn = screen.getByRole("button", { name: "Clear" });
      fireEvent.click(btn);

      const spanEl = screen.getByText("Current count:0");
      expect(spanEl).toBeInTheDocument();
    });
  });
});

・计数

・倒计时
・倒计时
・成功
・失败

今天关于《React 基础知识~单元测试/描述测试》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>