0
点赞
收藏
分享

微信扫一扫

React中的测试方法

React中的测试方法_正则


测试方法

describe

用来描述测试体的

第一个参数表示测试的目的(具有目的性)

第二个参数是测试体,在测试体中,我们进行测试

it

用来定义每个测试语句

第一个参数表示测试语句的说明(具有目的性)

第二个参数是函数,表示测试功能的实现(将具体的断言写在函数内)

expect

用来定义断言的。

参数是一个表达式,

返回值就是需要判断的结果,我们可以通过一些判定方法来判断

判断方法

toBe()

相当于===

toEqual()

判断字面量是否相等

toMatch()

参数是正则,判断正则是否匹配

toContain

数组中是否包含该成员

toBeTruly

结果是否为真

toBeFalsly

结果是否为假

周期方法

beforeEach

每次执行测试语句之前,都执行的方法

afterEach

每次执行测试语句之后,都执行的方法

beforeAll

所有测试语句执行之前,执行的方法

afterAll

所有测试语句执行之后,执行的方法

测试虚拟DOM

jest可以对一些业务逻辑进行测试,但是在React开发中,我们主要开发组件视图,因此对于业务逻辑测是的工作较少,为了能够测试组件,react提供了enzyme插件,enzyme插件提供了shallow方法,可以将组件类实例化,

但是react发展更新的很快,因此为了解决版本不同的问题,参考了babel设计方案。enzyme为每一个版本的react提供了一个插件,我们开发16版本react,因此要使用16版本适配器插件enzyme-adaptor-react-16,因此在项目中,我们要安装这两个插件:

yarn add enzyme enzyme-adaptor-react-16

我们要创建配置文件setupTests.js文件,在文件中引入适配器配置

configure({ adapor: new Adaptor() })

configure是由enzyme 模块提供的方法

Adaptor是由enzyme-adaptor-react-16模块提供的方法

shallow方法测试虚拟DOM

我们通过shallow方法,可以将组件转成虚拟DOM,就可以测试了

发布项目

我们可以通过yarn build指令来发布项目,此时会将我们开发的代码发布到build目录下,该目录下的代码我们就可以上线了

发布的文件都帮助我们实现了工程化了:合并,压缩,添加指纹等等

webpack配置

我们可以通过yarn eject指令输出webpack配置,

注意:该操作是不可逆的,一旦我们输出配置,我们只能使用webpack编译了

// 引入库
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
// 配置
configure({ adapter: new Adapter() })
// 引入shadow方法
import { shallow } from 'enzyme';
// 引入工具
import { add } from './util/tools.jsx';
// 测试整体描述
describe('测试App组件', () => {
// console.log(111, shallow)
// console.log('test')
// 组件容器
let wrapper = null;
// 每个测试语句执行之前
beforeEach(() => {
// 将虚拟DOM创建
wrapper = shallow(<App></App>)
console.log('beforeEach')
})
// 每个测试语句执行之后
afterEach(() => {
// 将其销毁
wrapper.unmount();
console.log('afterEach')
})
// 所有测试语句执行之前
beforeAll(() => {
console.log('beforeAll')
})
// 所有测试语句执行之后
afterAll(() => {
console.log('afterAll')
})
// 测试
it('测试add方法是否正确', () => {
// 定义断言
expect(add(10, 20))
// 希望结果是30
.toBe(30)
})
})

举报

相关推荐

0 条评论