
参考:
1. react-test-renderer
1.1 安装
安装:npm i react-test-renderer@18 - 对应 react 的版本,当前用的是 v18 就暂时下载的是 v18
1.2 使用
目录:
1 2 3 4
| src/ test/ react-test-renderer.test.js App.js
|
test/react-test-renderer.test.js - 步骤:①运行 npm test; ②按 a 开始测试,观察全部 PASS
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import ShallowRender from 'react-test-renderer/shallow' import App from '../App'
describe("react-test-renderer", () => { it("app 的名字是 jerry-todolist", () => { const render = new ShallowRender() render.render(<App />) expect(render.getRenderOutput().props.children[0].type).toBe("h1") expect(render.getRenderOutput().props.children[0].props.children).toBe("Jerry-todolist") }) })
|
App.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| import React, { Component } from 'react'
export default class App extends Component { state = { text: "", list: ["111", "222", "333"] } render() { return ( <div> <h1>Jerry-todolist</h1> <input onChange={(evt) => { this.setState({ text: evt.target.value }) }} /> <button onClick={() => { this.setState({ text: "", list: [...this.state.list, this.state.text] }) }}>add</button> <ul> { this.state.list.map((item, index) => <li key={item}> {item}-<button className='del' onClick={(index) => { let newlist = [...this.state.list] newlist.splice(index, 1) this.setState({ list: newlist }) }}>del</button> </li> ) } </ul> </div> ) } }
|