原文:https://itnext.io/mocking-global-objects-in-vue-test-utils-a8822df013a8 vue-test-utils 提供了一种 mock 可以用 vue-test-utils 提供的 config API 来实现。
Vue-Test-Utils + Jest 单元测试入门与实践 创建Vue项目 在终端用vue-cli创建一个项目 $vue create vue-test 选择Manually select features .to-do-text 是一个 CSS 选择器;Vue-Test-Utils 提供了 find 方法来通过查找选择器,来返回一个 Wrapper;选择器可以是 CSS 选择器、可以是 Vue 组件也可以是一个对象 可以这样写:wrapper.trigger('click', {name: "bubuzou.com"}) 更多用法vue-test-utils官方文档 参考原文
对于第二个问题,答案是 vue-test-utils。 vue-test-utils 本身就是解决这个问题的,如果我将一个 app 看成是组件的有机体(组件以及组件之间的通信协作),并将组件看成函数的话。 那么vue-test-utils 的核心功能就是: 帮你执行这些函数。 改变函数内部的状态。 触发函数之间的通信。 。。。 vue-test-utils 的 wrapper 同时完成了上面两件事setProps 和 assert。 vue-test-utils 还帮你做了很多事情, 比如组件嵌套(类似函数调用栈)如何测试,怎么 mock props,router 等。
---- 知识点 将 mock 对象断言为特定类型 使用 jest.Mocked<T> 使用 it.only 来指定测试的 case 使用 skip 跳过指定测试的 case 测试内容 触发事件 trigger 方法 测试界面是否更新 特别注意 DOM 更新是个异步的过程 使用 async await 更新表单 setValue 方法 验证事件是否发送 emitted 方法 测试异步请求 模拟第三方库实现 测试准备和结束 可以使用内置的一些钩子来简化一些通用的逻辑,以下钩子用于一次性完成测试准备。 b
---- Vue-Test-Utils 简介 提供特定的方法,在隔离的环境下,进行组件的挂载,以及一系列的测试 安装 这是一个基于 vue-cli 生成的项目,可以直接使用 vue add xxx 进行插件的安装 vue add unit-jest 插件运作的过程 安装的依赖 vue-test-utils vue-jest 注入了新的命令 vue-cli-service test:unit tests/unit
环境 vue-cli@2.9.2 配置 Jest 测试; 使用插件 vue-test-utils ,提供丰富的 api ,Vue 团队维护 。 其他 诸如 props ,emit 的测试, vue-test-utils 上已经有详细的例子了,也就不再重复。 这里有测试的例子: https://github.com/j... 。
用成熟好用的测试工具库 -- vue-test-utils vue-test-utils 是 Vue 生态圈中的一个开源项目,其前身是 avoriaz,avoriaz 也是一个不错的包,但其 README 中有说明,当 vue-test-utils 正式发布的时候, 它将会被废弃。 vue-test-utils 能极大地简化 Vue.js 单元测试。 App'){{/if_eq}}{{#if_eq runner "jest"}}.toEqual('Welcome to Your Vue.js App'){{/if_eq}} }) }) 使用 vue-test-utils vue-test-utils 还有 createLocalVue() 等方法以及 stub 之类的功能,基本上可以完成绝大部分情况下的测试用例。
本文速览了新的 Composition API 如何玩转官方的 Vue 组件单元测试库 vue-test-utils。剧透:用起来是一样一样的。 vue-test-utils 并不关心你如何构成组件;所有既有的方法和 APIs 都能应用于 Composition API。这是个好事!
介绍 Vue-Test-Utils 是 Vue.js 官方的单元测试实用工具库,它提供了一系列的 API 来使得我们可以很便捷的去写 Vue 应用中的单元测试。 主流的单元测试运行器有很多,比如 Jest、Mocha 和 Karma 等,这几个在 Vue-Test-Utils 文档里都有对应的教程,这里我们只介绍 Vue-Test-Utils + Jest 结合的示例 环境配置 通过脚手架 vue-cli 来新建项目的时候,如果选择了 Unit Testing 单元测试且选择的是 Jest 作为测试运行器,那么在项目创建好后,就会自动配置好单元测试需要的环境,直接能用 Vue-Test-Utils .to-do-text 是一个 CSS 选择器;Vue-Test-Utils 提供了 find 方法来通过查找选择器,来返回一个 Wrapper;选择器可以是 CSS 选择器、可以是 Vue 组件也可以是一个对象
虽然 Facebook 已经交由社区去开发那些不属于 React本身的库,但 Vue、vue-router、vuex、vue-test-utils、vue-cli 以及未来更多的官方库的开发和维护团队却是相同的 Vue 拥有一个非常类似的库 vue-test-utils。与 Enzyme 一样,它也提供加载组件、遍历DOM 等功能,从而使测试组件变得更加容易。 诸如响应式原理、生命周期钩子等;第2章到第6章进入Vue高阶世界,通过在丰富的组件特性中遨游,教你使用vue-router和vuex来实现客户端路由和状态管理,以此完善整个Web应用的功能;最后一章介绍如何使用vue-test-utils
此时会出现类似于 Failed to resolve component: a-button 的报错
vue-test-utils vuejs/vue-test-utils是官方的辅助测试库。它其实即是将组件实例化的过程进行封装,帮你模拟它组件实例化过程。
技术选型方案 语言和基础框架 ts + vue3 脚手架 imooc-cli 测试框架 jest + vue-test-utils 构建工具 webpack + rollup 持续集成 travis UI
这使得涉及插件的测试特别棘手 vue-test-utils必须实现特殊的API createLocalVue来处理此问题 这也使得很难在同一页面上的多个“应用”之间共享相同的Vue副本,但是具有不同的全局配置
Vue: 提供vue-test-utils,可以与Jest、Mocha等测试框架配合使用。
推荐:单元测试和其他测试手段一起使用 VUE项目中使用单元测试 我们使用Vue-Test-Utils这个Vue.js官方的单元测试实用工具库,来编写VUE应用中的单元测试。
Prettier[16] + ESLint[17] + Airbnb JavaScript Style Guide[18] 提交规范:Commitizen[19] + Commitlint[20] 单元测试:vue-test-utils 安装核心依赖 我们使用 Vue 官方提供的 vue-test-utils 和社区流行的测试工具 jest 来进行 Vue 组件的单元测试。 vue-test-utils[42] The next iteration of Vue Test Utils. Commitizen: http://commitizen.github.io/cz-cli/ [20] Commitlint: https://commitlint.js.org/#/ [21] vue-test-utils master [41] 示例: https://github.com/leoforfree/cz-customizable/blob/master/cz-config-EXAMPLE.js [42] vue-test-utils
UI 测试有 ReactTestUtils, Test Render, Enzyme, React-Testing-Library, Vue-Test-Utils 等。 结论 经过分析,最后我们项目的技术选型为 Jest + React Testing Library + Puppeteer 而对于 Vue 的项目,为了保持技术栈的统一,我们选用了 Jest + Vue-Test-Utils
地址:https://github.com/vuejs/vite 一个简易的http服务器,无需webpack编译打包,根据请求的Vue文件,直接发回渲染,且支持热更新(非常快) 9.6 vue-test-utils
vue-class-component: Alpha vue-cli: Experimental support via vue-cli-plugin-vue-next eslint-plugin-vue: Alpha vue-test-utils