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

你不知道的 Vue 单元测试(6000字实战单元测试

Vue-Test-Utils 和 Jest 的 API 来写测试用例了。...7.0.0-bridge.0 版本的 babel-core npm install --save-dev babel-jest vue-jest babel-core@7.0.0-bridge.0...,用 - 号表示,点击后删除该项 待完成列表有标记为已完成的按钮,用 √ 号表示,点击后当前项移动到已完成列表 已完成列表有标记为未完成的按钮,用 x 号表示,点击后当前项移动到未完成列表 列表序号从1...li').find('.del').trigger('click') expect(wrapper.vm.toDoList.length).toBe(0) }) it('点击待完成列表中某项的已完成按钮...).toBe(1) }) it('点击已完成列表中某项的未完成按钮,数据对应更新', () => { const wrapper = shallowMount(ToDoList) wrapper.setData

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

试试使用 Vitest 进行组件测试,确实很香。

当关闭按钮点击时,该组件会发出一个事件。 为了测试这些功能,在项目中添加一个 notification.test.js 用于测试。...当用户点击组件上的关闭按钮时,我们会重置 message 参数。...我们还想测试一下,每当组件上的按钮点击,它就会发出一个事件: test("emits event when close button is clicked", async() => {...我们还使用了data函数,并添加了一个 clicked 属性,当点击时将被切换。 到这,我们需要触发这个点击事件,我们首先通过使用 find 函数来获得按钮。...在找到按钮后,使用 trigger 方法来触发一个点击事件。这个方法接受要触发的事件名称(click, focus, blur, keydown等),执行这个事件并返回一个 promise。

2.2K20

前端测试体系建设与最佳实践总结

它拥有更简洁易用的 API,更快的运行速度,逐渐成为业内自动化测试的标杆,俘获大量 Selenium 用户的心。可以看下近年来 e2e 测试框架的 npm trends. ?...结论 经过分析,最后我们项目的技术选型为 Jest + React Testing Library + Puppeteer 而对于 Vue 的项目,为了保持技术栈的统一,我们选用了 Jest + Vue-Test-Utils...我们的测试点在加菜和减菜按钮的事件是否被正确触发,当数量为 0 时,减号按钮和数量是否展示,数量不为 0 时,展示是否正确。.../NumberCount'; afterEach(cleanup); test('点击加菜按钮', () => { const props = { dish: Immutable.fromJS...toBeNull(); fireEvent.click(addButton); expect(props.addToCart).toBeCalledWith(props.dish); }); test('点击减菜按钮

5.3K30

【架构师(第三十篇)】Vue-Test-Utils 全局组件和第三方库 vuex | vue-router

-- 登录按钮 --> <a-button type="primary" v-if="!...'; // 模拟第三方库 ant-design-<em>vue</em> <em>jest</em>.mock('ant-design-<em>vue</em>'); // 模拟外部模块 vuex <em>jest</em>.mock('vuex'); // 模拟外部模块...<em>vue</em>-router <em>jest</em>.mock('<em>vue</em>-router'); // 定义 wrapper let wrapper: VueWrapper; describe('UserProfile.<em>vue</em>...'; // 模拟第三方库 ant-design-<em>vue</em> <em>jest</em>.mock('ant-design-<em>vue</em>'); // 模拟外部模块 vuex <em>jest</em>.mock('vuex'); // 模拟外部模块...// 用来模拟 <em>vue</em>-router 的 push 方法 const mockRoutes: string[] = []; // 模拟外部模块 <em>vue</em>-router <em>jest</em>.mock('<em>vue</em>-router

2.2K30

【架构师(第三十二篇)】 通用上传组件开发及测试用例

Jest 是怎么使用它来模拟浏览器环境的 上传组件需求分析 基本上传流程 点击按钮选择文件,完成上传 支持查看上传文件列表 文件名称 上传状态 上传进度 删除按钮 其它更丰富的显示 自定义模板 初始容器自定义...as jest.Mocked; // 定义 wrapper let wrapper: VueWrapper; // 定义测试文件 const testFile =...new File(['xyz'], 'test.png', { type: 'image/png' }); // 测试 UserProfile.vue describe('UserProfile.vue...exists()).toBeTruthy(); // 按钮文字是点击上传 expect(wrapper.get('button').text()).toBe('点击上传'); /...firstItem.classes()).toContain('upload-loading'); // 清除 promise await flushPromises(); // 按钮文字为点击上传

3K50

50行代码串行Promise,koa洋葱模型原来这么有趣?

其中最新的两篇是: Vue 3.2 发布了,那尤雨溪是怎么发布 Vue.js 的?...阅读本文,你将学到: 1. 熟悉 koa-compose 中间件源码、可以应对面试官相关问题 2. 学会使用测试用例调试源码 3. 学会 jest 部分用法 2....", "test": "jest" }, } 在scripts上方应该会有debug或者调试字样。点击debug(调试),选择 test。...我们可以在 45行 打上断点,重新点击 package.json => srcipts => test 进入调试模式。如下图所示。 koa-compose 调试 接着按上方的按钮,继续调试。...接收一个参数,校验参数是数组,且校验数组中的每一项是函数。 返回一个函数,这个函数接收两个参数,分别是context和next,这个函数最后返回Promise。

41820

Vue 业务系统如何落地单元测试

一直对单测很感兴趣,但对单测覆盖率、测试报告等关键词懵懵懂懂,最近几个月一直在摸索如何在Vue业务系统中落地单元测试,看到慢慢增长的覆盖率,慢慢清晰的模块,对单元测试的理解也比以前更加深入,也有一些心得和收获...安装与使用 1. vue项目添加 @vue/unit-jest 文档 $ vue add @vue/unit-jest 安装完成后,在package.json中会多出test:unit脚本选项,并生成...将Jest Command替换为 test:unit,使用vue脚手架提供的 test:unit 进行单元测试。 ?...== 0){ removeTimer = setTimeout(remove, duration * 1000); } // 关闭按钮...回顾 定义 安装与使用(安装、调试、git拦截、测试报告) 常用API(jestvue组件) 落地单元测试(拆分关键模块加单测) 演进:构建可测试单元模块(设计原则、重构) 可维护的单元模块(代码规范

3.9K30

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

总体来说,单元测试有以下一些好处: 1,及早发现代码错误,提高代码质量和可维护性。 2,代码变更时可以快速进行检查。 然而要做好测试也有一定的困难: 1,花费时间长。...主要提供以下功能方便测试1.模拟 touch 事件、自定义事件触发。 2.选取子节点。 3.更新自定义组件数据。 4.触发生命周期。...处理用户操作, 保证事件触发时, 响应函数如预期,例如: • onOk 当用户点击确认按钮时触发。 • onCancel 当用户点击取消按钮时触发。...该方法和sinon.spy一样,生成函数的“间谍”,可以断言该函数的调用次数、调用入参、调用返回等是否符合预期。...B import axios from 'axios';jest.mock('axios'); // 模拟一次接收到的数据axios.get.mockResolvedValueOnce({ data:

2.6K40

Vuex 之单元测试

3.2 - 编写测试 鉴于一个 getter 只是一个接收一个 state 对象作为首个参数的 JavaScript 函数,所以测试起来非常简单。...([ dogs[0] ]) }) }) 不同于向 getter 传入真实的 poodles(译注:刚刚测试过的另一个 getter),我们传入的是一个它可能返回的结果。...如果我们也在一个单元测试中做同样的事,那么,所有单元测试都得接收那个 Vuex store,尽管测试中根本用不到它。...vue-test-utils 提供了一个 createLocalVue 方法,用来为测试提供一个临时 Vue 实例。让我们看看如何使用它。...我们不关心实际发生的 -- 那可以被单独地测试。本次测试的目的就是简单地验证单击一个按钮会 dispatch 正确的带 payload 的 action。

3.3K20

Jest来给React完成一次妙不可言的~单元测试

我们的例子相当简单,因为我们只是想点击一个按钮,所以我们只需: fireEvent.click(incrementButton); // OR fireEvent.click(decrementButton...当我们点击按钮时,测试计数器的增减是否正确: import React from 'react'; import "@testing-library/jest-dom/extend-expect"; import...第一个测试使用 fireEvent.click() 触发一个 click 事件,检查单击按钮时计数器是否增加到1。 第二个检查当点击按钮时计数器是否减为-1。...但是这一次,它只接收作为参数的组件。为了创建新的上下文,我们将CounterContext传递给 Provider。 现在,我们可以测试计数器最初是否等于0。那么,计数器的增减是否正确呢?...最后,我们将使用Jest函数mockResolvedValueOnce()来传递模拟数据作为参数。 现在,对于第二个测试,我们可以单击按钮来获取数据并使用async/await来解析它。

14.8K33

01,带你尝鲜Vue3.0

可以试一下点击的效果。 接下来如果你要debug一下源码的时候你会发现: 代码是经过打包的无法直接在源码上打断点调试。 ?...回顾历史 Vue2如果要在组件中实现逻辑的符合,譬如所有按钮组件都要实现防抖,可选的方式大概有以下三个: Mixins 高阶组件 (Higher-order Components, aka HOCs)...Vue3代码是基于Jest进行测试,我们先简单看看什么是jest Jest简介 Jest 是Facebook的一个专门进行Javascript单元测试的工具。...总之目前来讲JS界Jest是一套比较成体系的测试工具。 为什么这么说呢比如拿以前的测试框架Mocha对比 他只是一个测试框架。...为了对比理解Vue2、3的响应式实现的不同我把两种实现都写了一下,并且配上了jest测试

1.2K20

云函数进阶:云函数URL化、集成响应、定时任务和云函数路由

开启URL化 打开uniCloud Web控制台,进入云函数管理页,点击云函数后的详情按钮 在云函数URL化区域里点击编辑按钮,在Path的输入框里输入/自定义路径,注意必须/开头 点击保存,然后复制这个...a=1&b=2,云函数接收到的event为 { path: '/', httpMethod: 'GET', headers: {HTTP请求头}, queryStringParameters...在uniCloud web控制台找到需要配置定时触发器的云函数,点击详情按钮 编辑创建云函数触发器,格式如下: ["cron:0 0 * * * *"] Cron 表达式有七个字段,按空格分隔。...* * * 表示在每月的1日的凌晨2点触发 0 15 10 * * MON-FRI * 表示在周一到周五每天上午10:15触发 0 0 10,14,16 * * * * 表示在每天上午10点,下午2点...,下午4点触发 0 */30 9-17 * * * * 表示在每天上午9点到下午5点内每半小时触发 0 0 12 * * WED * 表示在每个星期三中午12点触发 注意事项: 定时触发器限制为最高频率每小时触发一次

4.7K20

如何测试驱动开发 React 组件?

Confirmation 组件的特点: Confirmation 标题 确认描述 —— 接收外部程序想要确认的问题 一个确认的按钮,支持外部回调函数 一个取消的按钮,支持外部回调函数 这两个按钮都不知道点击时接下来要做什么事...,因为它超出了组件的职责范围,但是组件应该接收这些点击按钮的回调事件。...例如点击按钮,就是 role="button" ;会让这个元素可点击;也可以使用 role 属性告诉辅助设备(如屏幕阅读器)这个元素所扮演的角色。...{title} {question} ) } export default Confirmation 确认按钮测试 接下来是确认按钮测试.../button> ) } export default Confirmation 取消按钮测试 同样对“取消”按钮做同样的事情: 测试: it('should have an

2.2K10

为什么需要前端自动化测试呢?

原文为:https://www.wolai.com/4RCFtUJ1gqnP5eTNCkxCkB 我们先来回顾几个公知问题 自动化测试就是面向这些问题而生的。...项目进度压力不太大 开发比较规范,具有可测试性 具备大量的自动化测试平台 测试人员具备较强的编程能力 一些常见的测试工具 单元测试(Unit Test)有 Jest, Mocha UI测试Test Render...渲染组件/执行条件/准备数据 行动(Act) 对系统执行操作,例如点击按钮、触发钩子函数 断言(Assert) 确保真实的结果匹配你的期望 单元测试开发案例 假设现在我们要开发一个按钮, 我们先来设计这个按钮的功能...首先能接收自定义文字,能够接收size设置不同尺寸,能够触发事件,然后还有禁用功能 接下来我们开始写单元测试 // tests/button.spec.js import Button from '@.../components/Button.vue' import { mount } from "@vue/test-utils" const BUTTON_TEXT = '点击' describe('Button.vue

1.3K30

Vue 应用单元测试的策略与实践 04 - Vuex 单元测试

本文的目标 2.2 在 Vue 应用的单元测试中,对 Vuex store 该如何测试?如何测试Vue 组件之间的交互? // Given 一个有基本的UT知识和Vue组件单元测试经验的开发者?...mutations describe('mutations', () => { it('INCREMENT', () => { // 模拟状态 const state = { count: 0...() } }) it('当按钮点击时候调用“actionClick”的 action', () => { const wrapper = shallowMount(Actions, {...未完待续…… ## 单元测试基础 ### 单元测试与自动化的意义 ### 为什么选择 Jest ### Jest 的基本用法 ### 该如何测试异步代码?...架构 ### 如何对 Vuex 进行单元测试 ### Vue组件和Vuex store的交互 ## Vue 应用测试策略 ### 单元测试的特点及其位置 ### 单元测试的关注点 ### 应用测试测试策略

1.6K30
领券