首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Jest单元测试之旅—实践总结

其中toEqual是jest提供匹配器,jest提供了非常多匹配器,这里列举一些常用: toBe:使用Object.is精准匹配 toEqual:相比toBe会做深层比较,一般用于检测对象 toBeNull...每个方法都有不同使用场景,每个API都会生成一个mock模拟函数,Jest对模拟函数提供了很多方法给予我们模拟方法返回、实现等等,可移至文档参考 jest.fn jest.fn主要是创建一个模拟函数...与 jest.spyOn 针对jest.mock与jest.spyOn产生一系列关联API,如下: 方法 作用 jest.mock 模拟整个模块 jest.spyOn 模拟一个特定功能 jest.clearAllMocks...而jest.mock调用方式有所不同。Jest接管require系统,jest.mock告诉Jest,它在需要时应返回模块模拟,而不是实际模块。...result}-${randomNumber()}` } } export default LocalCache; 为了使transform不是一个纯方法,这里使用randomNumber来使其返回不稳定

10.2K20

那些年错过React组件单元测试(上)

jest中与mock相关api主要有三个,分别是jest.fn()、jest.mock()、jest.spyOn()。使用它们创建mock函数能够帮助我们更好测试项目中一些逻辑较复杂代码。...jest.fn() jest.fn()是创建mock函数最简单方式,如果没有定义函数内部实现,jest.fn()会返回undefined作为返回。...expect(mockFn).toHaveBeenCalledWith('厦门','青岛','三亚'); }) jest.fn()所创建mock函数还可以设置返回,定义内部实现或返回Promise...// functions.test.js test('测试jest.fn()返回固定', () => { let mockFn = jest.fn().mockReturnValue('default...jest.spyOn() jest.spyOn()方法同样创建一个mock函数,但是该mock函数不仅能够捕获函数调用情况,还可以正常执行被spy函数。

4.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

前端单元测试那些事

API,分别是jest.fn()、jest.spyOn()、jest.mock() jest.fn() - 是创建Mock函数最简单方式,如果没有定义函数内部实现,jest.fn()会返回undefined...作为返回,当然你也可以给他设置返回、定义内部实现或返回Promise对象,如下例: // 断言mockFn执行后返回为name it('jest.fn()返回', () => { let...mockFn = jest.fn().mockReturnValue('name'); expect(mockFn()).toBe('name'); }) //定义jest.fn()内部实现并断言其结果...对象执行了回调函数 注:有时候会存在一种情况,在同个组件中调用同个方法,只是返回不同,我们可能要对它进行多次不同mock,这时候需要在beforeEach使用restoreAllMocks方法重置状态...mock目的: 设置函数返回 获取获函数调用情况 改变原本函数内部实现 4. ️

4.3K40

Jest基本使用方法以及mock技巧介绍

如上面的例子可以: npm test sum.test.js 或者jest sum.test.js 也可以在jest配置文件里配置上testRegex  testRegex默认:(/__tests__...mock属性所有api可以参考:https://facebook.github.io/jest/docs/en/mock-function-api.html 2.1.2  Mock返回 可以使用mock...注入返回,可以使用api为mockReturnValue,mockReturnValueOnce等。...2.3.3  使用带模块工厂参数mock。 形式如下jest.mock(path, moduleFactory),其中模板工厂参数指的是一个返回模块函数 ? 2.3.4.  ...,针对不同情况 (例如返回或者替换实现),可以考虑使用mockReturnValue和mockImplementation;针对类和模块mock,推荐使用自动mock方法也就是jest.mock

8.2K50

JavaScript 测试系列实战(三):使用 Mock 模拟模块并处理组件交互

axios 模块提供了一个 get 函数,并且会返回一个 Promise,包含预先设定假数据。...首先通过 jest.spyOn,我们便可以监听一个函数使用情况,然后使用配套 toBeCalled Matcher 来判断该函数是否被调用。整体代码十分简洁,同时也保持了很好可读性。...我们测试第一件事是检查修改输入是否更改了我们状态: 我们修改 app/components/TodoList.test.js 如下: import React from 'react'; import...postSpy.mock.results 是 post 函数发送结果数组,通过使用它,我们可以得到返回 promise,我们可以从 value 属性中取到这个 promise。...从测试返回 promise 是确保 Jest 等待其异步方法执行结束一种方法。 小结 在本文中,我们介绍了 mock 模块,并将其用于伪造API调用。

4.7K20

编写接口请求库单元测试与 E2E 测试思考

其次是适配器中方法返回类型是一定,如错误使用 axios interceptor 可能会导致出现问题。...Unit Test 再说说单测,一般接口库也主要做这类测试比较多,因为单测不需要实际去访问接口,都是用 mock 方式去伪造一个数据,而用 Jest 的话就直接 spyOn 去 mock 掉整个请求方法了...你只需要测试自己业务逻辑就行了。 而对于这个库而言只需要测试有没有注入 adaptor 后,用 adaptor 请求数据之后有没有拿到了正确。...spyOn 掉了 adaptor get 方法,而要测试则是 core 层有没有正确使用 adaptor 访问了正确路径。...还是使用 mock 方法 mock 掉 adaptor 请求返回。简单说说就是这样写了。

1K40

前端自动化测试

,改出BUG 一个组件多个页面复用,修改后测试回归任务重 技术选型 目前前端整体测试框架较为常用有: Jest Mocha Jest 源自Facebook,Jest 一个理念是提供一套完整集成...(test) beforeEach: 定义一个回调函数在每个测试之前执行 expect: 执行一个断言 jest.fn(): 创造一个mock函数 一些用于断言方法: toEqual: 验证两个是否相同...mockReturnValue: mock函数被调用返回一个 EnzymeAPI更多着重于渲染react组件和从dom树种检索指定节点 下面是三种渲染组件方法: shallow: 会渲染至虚拟...first: 返回集合第一个节点 at: 返回集合第n个节点 html: 获取节点HTML结构 text: 获取节点文本 一些用于组件交互方法: simulate: 模拟一个事件 setProps...即检查输入框是否为默认 测试清除按钮是否可用,通过模拟点击清除按钮,测试是否能按照预期清除输入框内填充默认 测试设置,点击输入框,弹出选择框,选择,检查输入框中是否为选择

1.9K20
领券