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

单元测试

所以,我们测试用例只和传入 Props 以及输出内容 render 函数进行交互就够了。...交互),推荐单测之前已评审过测试用例 公共类 公共组件 公共方法 公共自定义hook 需求功能类 组件Props(组件入参是否正确场景或时机被正确使用或调用) Render 交互(基于用户交互判断关键节点流程是否正确时机被正确执行...它主要作用是使你能够在测试中对使用了 Canvas 代码进行断言和验证,而无需实际渲染真实画布。...分支覆盖率 > 判定覆盖 > 语句覆盖 单测数据统计 2023Q4单测收益统计表 为方便统计,需在miigo需求对应任务中分类录入 开发时间 联时间 单测时间 苍穹发布 苍穹执行单测前置条件 项目中引用了...}); }); 快照测试 快照测试基本理念:先保存一份副本文件,下次测试时把当前输出和上次副本文件对比就知道此次改动是否破坏了某些东西。

18810

前端自动化测试

,改出BUG 一个组件多个页面复用,修改后测试回归任务重 技术选型 目前前端整体测试框架较为常用有: Jest Mocha Jest 源自Facebook,Jest 一个理念是提供一套完整集成...这里可以首先简单看一下,Jest+Enzyme基本语法: JestAPI更多着力于定义测试、断言、mock库 定义测试: describe: 定义一个测试套件(test suite) it: 定义一个测试...(test) beforeEach: 定义一个回函数在每个测试之前执行 expect: 执行一个断言 jest.fn(): 创造一个mock函数 一些用于断言方法: toEqual: 验证两个值是否相同...: 验证一个mock函数是否被调用 toBeCalledWith: 验证一个mock函数是否被传入指定参数被调用 一些用于mock方法: mockImplementation: 提供mock函数执行...测试默认值,即检查输入框是否为默认值 测试清除按钮是否可用,通过模拟点击清除按钮,测试是否能按照预期清除输入框内填充默认值 测试设置值,点击输入框,弹出选择框,选择值,检查输入框中是否为选择

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

Jest + React Testing Library 单测总结

1.3 组件单测须知 在开始进行组件单测时候,有几个因素我们需要考虑: 组件是否按照既定条件 / 逻辑进行渲染 组件事件回是否正确 异步接口如何校验 异步执行完毕后操作如何校验 .........在组件单测中,有的时候我们可能只关注一个函数是否正确地调用了,或者只想要某个函数返回值来支持该组件渲染逻辑是否正确,而并不关心这个函数本身逻辑。...2.3.1 jest.fn() 通过 jest.fn(implementation) 可以创建 mock 函数。如果没有定义函数内部实现,mock 函数返回 undefined。...被渲染组件,可以通过 debug 函数或者 screen debug 函数在控制台输出组件 HTML 结构。...get 和 query 区别主要是在未找到元素时,queryBy 会返回 null,这对于我们测试一个元素是否存在时非常有帮助。

4.5K20

万字详文:彻底搞懂 Jest 单元测试框架

例如:一个名为求和(sum)函数应该返回给定一些运算结果预期输出。...最典型测试流程如下所示: 导入要测试函数函数一个输入 定义期望输出 检查函数是否产生预期输出 一般,就这么简单。...我们将提供数字为 1 和 2,并期望输出 3。 test 它需要两个参数:一个用于描述测试字符串,以及一个用于包装实际测试函数。...), }); 这是一个简单模拟示例,模拟了 fs 模块 readFile 函数测试特定业务逻辑返回值。...V8 虚拟机执行完毕之后,全局 state 就会收集到测试块中所有包装好测试函数,我们最后只需要把所有的这些回函数遍历取出来,并执行。

7.6K20

自动化测试 Jest 使用总结基础篇

他可以创建测试用例,执行测试,自身还有驱动和mock,且用起来也是很方便,正如 jest 官网这样描述 jestJest is a delightful JavaScript Testing Framework...验证参数是否正确 jest 提供了多种匹配器可以对不同数据类型做匹配,比如:array,string,object 等等,而它们匹配器分别是 toContain ,toMatch,toEqual。...同时, jest 也支持做不匹配校验,也就是反向校验。下面就是一些不同匹配器。 简单类型校验; 使用 tobe() 匹配器做简单类型校验,校验结果是否正确。...callback 函数校验 使用 jest 做回操作测试需要注意,函数回掉情况。...钩子函数使用 钩子执行 再执行测试文件时候,如果有需要对函数进行特殊处理可以在执行前和执行后使用钩子函数,beforeEach and afterEach。

2.7K111

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

jest提供了三种方案来测试异步代码,下面我们分别来看一下。 done 关键字 当我们test函数中出现了异步回函数时,可以给test函数传入一个done参数,它是一个函数类型参数。...).toEqual({ success: true }) done() }) }) 上面的代码中,我们给test函数传入了done参数,在fetchData函数中调用了...返回测试函数就会结束。...在单元测试中,我们可能并不需要关心内部调用方法执行过程和结果,只想知道它是否正确调用即可,甚至会指定该函数返回值。这个时候,mock意义就很大了。...jest.fn() jest.fn()是创建mock函数最简单方式,如果没有定义函数内部实现,jest.fn()会返回undefined作为返回值。

4.9K20

Jest测试语法系列之Expect

expect(bestLaCroixFlavor()).toBe('grapefruit'); }); 在上面的例子中,toBe是matcher函数,为了帮助你测试不同内容,Jest提供了很多不同...pass指示是否存在匹配,message提供了一个没有参数函数,在失败时返回错误消息。因此当pass为false时,当expect(x). yourmatcher()失败时,消息应该返回错误消息。...,在测试异步代码时这通常很有用,以便确保回断言确实被调用。...在测试异步代码时,这通常很有用以便确保回断言确实被调用。...假设我们有一些处理状态函数,prepareState调用一个状态对象,validateState运行在那个状态对象上,waitOnState返回一个承诺,直到所有prepareState回完成

3.6K20

Vue 应用单元测试策略与实践 02 - 单元测试基础

Given/When/Then 套路 麻雀虽小五脏俱全,在上面的例子当中,我们可以看到很多测试元素,下面将会一一介绍: 首先我们看到是一个由 it 包裹测试主体最小单元,采用了 Given When.../sound-player 这个文件当中 export 出来,而被 Mock 之后我们测试就可以使用 Mock 所返回数据或方法,从而保证模块所返回内容是我们所期望。...不需要什么输入输出,只要能在测试时候验证到 Stub 被调用过就行,也就能够断言到某处代码被执行,从而确定代码被测试所覆盖。...而另一种特定行为就是返回特定数据,即 Stub 也可以根据输入模拟返回一种输出,作为某些模块替身帮它演戏,比如“小鲜肉们”遇到要跳车啦、要卿卿我我(误)时候就要找替身,“一二三四五六七八”连台词都不用背还需要配音...navigator.geolocation.getCurrentPostion() # chrome API 异步获取当前位置 Callback 回函数 it('the data is peanut

2.2K20

【干货分享】微信小程序单元测试攻略

mock测试文件中导入文件 automock: false, testRunner: 'jasmine2', // 测试文件执行前会先执行该文件,用来给Jest测试函数加代理从而收集测试用例...多选择器并集:#a-node, .some-other-nodes ‍ 2.3.2.3 确认用户操作是否正确响应: 要感知事件是否响应,我们需要使用spyOn方法。...该方法和sinon.spy一样,生成函数“间谍”,可以断言该函数已调用次数、调用入参、调用返回是否符合预期。...2.3.3 完整断言方法 2.3.4 模拟数据mock 当被测方法包含环境因素不能直接测试时,例如使用了localStorage,又或者被测方法调用了接口,不希望测试时调用接口影响业务或降低测试速度...行覆盖率(line coverage):是否每一行都执行了? 2. 函数覆盖率(function coverage):是否每个函数都调用了? 3.

2.6K40

Vue设计与实现读后感-响应式系统实现-场景增强computed与watch(三)- 2

单元测试 承接上文,随着场景扩展,代码修改,我已经不能保证我所写代码对之前业务是否产生影响,如果每次都跑一下之前测试页面显然是不现实。需要通过自动化手段保证代码后续修改质量。...我场景还是比较简单就是一个ts单元测试场景,其实也不用太费劲毕竟尤大已经帮我们写好了单元测试了,最基本方式就是把他单元测试拷贝过来,其实大家只要熟悉一定单元测试使用方式就可以了,可以查看jest...个人认为比较好开发流程如下 功能需求->>代码优化-->>自动化测试 测试框架选择jest,下载相关依赖 "devDependencies": { "jest": "^27.5.1",...(x)"], }; 新建测试文件,复用了尤雨溪单元测试,自己也添加删除了一些来匹配现在api。...watch实现原理 先看一下官方watchapi使用形式,反推实现,我们需要实现一个响应式数据,并监听数据变化,执行相关,返回新旧值。

1.6K50

前端单元测试那些事

分支覆盖率(branch coverage)是否每个函数都调用了函数覆盖率(function coverage)是否每个if代码块都执行了?...,如果没有定义函数内部实现,jest.fn()会返回undefined作为返回值,当然你也可以给他设置返回值、定义内部实现或返回Promise对象,如下例: // 断言mockFn执行后返回值为name...为了测试这个方法,我们应该做到: 我们不需要实际调用axios.get方法,需要将它mock掉 我们需要测试是否用了axios方法(但是并不实际触发)并且返回了一个Promise对象 返回Promise...对象执行了回函数 注:有时候会存在一种情况,在同个组件中调用同个方法,只是返回值不同,我们可能要对它进行多次不同mock,这时候需要在beforeEach使用restoreAllMocks方法重置状态...mock目的: 设置函数返回值 获取获函数调用情况 改变原本函数内部实现 4. ️

4.3K40

【架构师(第二十七篇)】前端单元测试框架 Jest 基础知识入门

---- 单元测试 单元测试其实在我实际开发中并没有用到过,但却经常听说,接下来进行单元测试学习 Jest 和 Vue Test Utils 基础和进阶全覆盖 TDD,测试驱动开发,一种全新开发方式...编辑器 如果使用是 vscode 并且安装了 jest 插件,那么可以实时并且直观看到测试是否通过 Jest 实现异步测试方式 // callback const fetchUser =...Mock 几大功能 创建 mock function,在测试中使用,用来测试 手动 mock,覆盖第三方实现,狸猫换太子 三大 API 实现不同粒度时间控制 函数测试 function mockTest...const mockCB = jest.fn() mockTest(true, mockCB) // 函数是否被调用过了 expect(mockCB).toHaveBeenCalled...mockTest(true, mockCB) console.log(mockCB.mock.calls); console.log(mockCB.mock.results); }) 还可以 mock 函数返回

1.3K20

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

我们通常用得到一份这样覆盖率报告: 图中对应解释: %stmts:语句覆盖率,指是否每个语句都覆盖到了 %branch:分支覆盖率,指是否每个if代码块都覆盖到了 %funcs:函数覆盖率,指是否每个函数都覆盖到了...每个方法都有不同使用场景,每个API都会生成一个mock模拟函数Jest对模拟函数提供了很多方法给予我们模拟方法返回、实现等等,可移至文档参考 jest.fn jest.fn主要是创建一个模拟函数...模拟部分函数,这里使用了jest.requireActual,该方法主要是绕过模拟模块导出真实模块,然后通过jest.mock工厂函数重新去定义该模拟模块内容,这种方式就可以指定导出模块具体哪些方法需要被模拟...因为在测试中我们可能会多次用到,为了避免重复代码,这里我们使用了beforeAll进行处理,与之对应是afterAll。它们两作用主要是文件内所有测试开始或结束前执行钩子函数。...原因是如果依赖被测试功能实现逻辑意味着修改实现逻辑但是输入输出没有变化也需要去更新测试代码。

10.2K20

JavaScript单元测试利器Jest+mocha+chai

同步代码测试比较简单,直接判断函数返回是否符合预期就行了,而异步函数,就需要测试框架支持回、promise或其他方式来判断测试结果正确性了。...mocha可以良好支持javascript异步单元测试。 mocha会串行地执行我们编写测试用例,可以在将未捕获异常指向对应用例同时,保证输出灵活准确测试结果报告。...在循环体中有3种跳转语句:Return==终止函数运行,并返回一个值。Break==终止整个循环。Continue==结束当前循环,判断是否执行下次循环。...2.5JavaScript中函数函数就是包裹在花括号中代码块,前面使用了关键词 function:function func_name(var1,var2) { 执行代码 }当调用该函数时,会执行函数代码...,一目了然哪个case是失败3.2:Jest实例演练安装jest:npm install -g jest初始化项目的jest配置: jest --init针对JS方法测试用例:import { timestampToTime

46720

使用Jest测试包含setTimeout调用函数踩坑记录

回到我们测试用例,原因也就明确了:调用enqueueJob之后,catch中被加入了队列,而随后delay则相当于直接调用了setTimeout(前面说到Promise对象构造时函数是立刻执行...中也就有机会被调用了。...相应地,Jest还提供了advanceTimersByTime函数,可以将Jest运行测试用例时假时钟向前拨动,并“按时”运行之前通过setTimeout、setInterval传入。...根据Jest官方文档,调用这个函数后,所有队列中“微任务”都会被立刻执行,这里目的就是保证catch回能被立刻调用; 使用jest.advanceTimersByTime(6000)代替await...在我们调用完enqueueJob之后,我们通过对setTimeoutmock数据进行断言,来检查enqueueJob是否用了setTimeout并传入了预期时长。

6.7K60

如何自动化测试 React Native 项目 (下篇) - 单元测试

Jest snapshot 测试不仅可以对比React tree结构区别, 也可以对比其他可序列化区别。 比如对比Redux某个状态state是否和之前相同。...在交互测试中,我们主要利用 simulate() API模拟事件,来判断这个元素 prop 上特定函数是否被调用, 传参是否正确, 以及组件状态是否发生意料之中修改。...Reducer测试 Reducer 是纯函数, 因此测试时候只要引入函数, 传入特定参数,判断函数返回是否符合预期即可。 可以利用 jest snapshot test 来判断结果。...Action Handler测试 纯 Object action 测试比较简单, 保证 action creator 函数返回 Object 正确就可以了。...上返回结果正确即可。

3.2K21

让我告诉你一些强无敌 NPM 软件包(超实用,收藏!)

Prettier Prettier[11] 是一款风格鲜明代码格式化程序。它通过解析代码并使用自己规则(限定最大行长)对代码进行重新输出,借此实现统一样式; ?...测试工具 Jest Jest[17] 是一款便捷好用 JavaScript 测试框架,以简单为核心诉求。您可以通过易于上手且功能丰富 API 编写测试,从而快速获取结果。 ?...jest-office 安装及示例 yarn add --dev jest 测试sum函数,这个函数功能是两数相加。..." } } 最后,运行 yarn test ,Jest输出如下信息: PASS ....Mocha 测试连续运行,允许灵活和准确报告,同时将未捕获异常映射到正确测试用例。 安装及示例 yarn add mocha --dev 接下来,创建名为 test.js 文件。

3K30
领券