【React】整理了默认生成的文件单元测试内容

背景资料

我已将React开发中的单元测试方法总结为输出。
随着React开发规模的增大,我认为需要编写单元测试代码的必要性也会增大。
此外,尽管我觉得编写测试代码很麻烦,但我认为通过进行单元测试可以使后续工作更轻松。

环境建设

■ React版本:react@18.2.0

■ 反应版本:react@18.2.0

■ React版本:react@18.2.0

■ React版本:react@18.2.0

可使用以下命令创建React开发模板文件夹:
创建完文件夹后,请使用cd命令进入该文件夹。

npx create-react-app sampletest

关于默认创建的文件

■ 设置测试.js

在创建的模板中,setupTests.js文件中包含以下内容,在默认情况下导入了用于测试的库。

import '@testing-library/jest-dom';

■ App.test.js (App测试.js)

将实施测试的内容描述为“renders learn react link”,将App组件作为测试的对象。在执行测试时,将输出“renders learn react link”这个文字。

import { render, screen } from '@testing-library/react';
import App from './App';

test('renders learn react link', () => {
  render(<App />);
  const linkElement = screen.getByText(/learn react/i);
  expect(linkElement).toBeInTheDocument();
});

关于上述的学习React的内容,它指的是下述代码中App.js文件中a标签内的Learn React文字。

import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

export default App;

另外,通过/i来忽略大小写,我们可以确认下面的代码部分中App.js内是否包含了”Learn React”内容。默认情况下,App.js的App组件内含有”learn react”的内容,因此测试结果会成功且没有错误。

const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();

我将尝试使用以下命令进行测试。

npm test
補充说明:关于npm test
如下图所示,在package.json文件的scripts部分默认有test的设置,因此可以使用npm test来进行测试。
pckc.png
image.png
reacttestimg.png
bannerAds