你不了解的Jest:React测试的环境搭建

发表于:2021-7-14 09:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:sokach    来源:掘金

#
jest
  如何编写前端测试一直是想了解的领域,之对jest测试的认知一直停留在expect和toBe的高度。这次将学习Jest+Enzyme如何对React项目进行测试。

  环境搭建
  准备react项目
  通过create-react-app搭建一个基本react项目供测试使用。

  搭建测试环境
  安装依赖:
 npm install jest --save-dev
 npm install enzyme --save-dev
 npm install enzyme-to-json --save-dev
 npm install enzyme-adapter-react-16

  配置packang.json:
  "scripts": {
    "test": "jest"
  }

  Jest配置文件
  生成jest配置文件:
npx jest --init

  在新生成的jest配置文件jest.config.js中进行配置:
  rootDir: './',
  setupFiles: [
    "<rootDir>/test/setup.js"
  ],
  moduleFileExtensions: [
    "js",
    "jsx",
    "ts",
    "tsx",
    "json",
    "node"
  ]

  在测试中可定会使用使用es6的import和export,所以需要通过babel来进行将es6模块转换成commonJs模块。
npm install @babel/core @babel/preset-env

  setup.js文件
import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

Enzyme.configure({ adapter: new Adapter() });

  .babelrc文件
{
  "presets": ["@babel/preset-env", "@babel/preset-react"]
}

  编写测试
  待测试的组件:
// App.js
import React, { Component } from 'react';

class App extends Component {
  render() {
    return (
      <div>
        <h1>hello World</h1>
      </div>
    )
  }
}

export default App;

  测试代码:
//app.test.js
import React from 'react';
import App from '../src/App';
import { shallow } from 'enzyme'

describe('component APP test', () => {
  it('测试hello world', () => {
    const app = shallow(<App />);
    expect(app.find('h1').text()).toBe('hello World')
  })
})

  执行npm test产看运行结果如下:

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号