vue 单元测试的推荐插件和使用示例

目录
  • 框架
    • 一流的错误报告
    • 活跃的社区和团队
    • Jest
    • Mocha
  • 推荐插件
    • Vue Testing Library (@testing-library/vue)
    • Vue Test Utils
  • 示例

单元测试应该:

  • 可以快速运行
  • 易于理解
  • 只测试一个独立单元的工作

框架

因为单元测试的建议通常是框架无关的,所以下面只是当你在评估应用的单元测试工具时需要的一些基本指引。

一流的错误报告

当测试失败时,提供有用的错误信息对于单元测试框架来说至关重要。这是断言库应尽的职责。一个具有高质量错误信息的断言能够最小化调试问题所需的时间。除了简单地告诉你什么测试失败了,断言库还应额外提供上下文以及测试失败的原因,例如预期结果 vs. 实际得到的结果。

一些诸如 Jest 这样的单元测试框架会包含断言库。另一些诸如 Mocha 需要你单独安装断言库 (通常会用 Chai)。

活跃的社区和团队

因为主流的单元测试框架都是开源的,所以对于一些旨在长期维护其测试且确保项目本身保持活跃的团队来说,拥有一个活跃的社区是至关重要的。额外的好处是,在任何时候遇到问题时,一个活跃的社区会为你提供更多的支持。 尽管生态系统里有很多工具,这里我们列出一些在 Vue 生态系统中常用的单元测试工具。

Jest

Jest 是一个专注于简易性的 JavaScript 测试框架。一个其独特的功能是可以为测试生成快照 (snapshot),以提供另一种验证应用单元的方法。

Mocha

是一个专注于灵活性的 JavaScript 测试框架。因为其灵活性,它允许你选择不同的库来满足诸如侦听 (如 Sinon) 和断言 (如 Chai) 等其它常见的功能。另一个 Mocha 独特的功能是它不止可以在 Node.js 里运行测试,还可以在浏览器里运行测试。

推荐插件

Vue Testing Library (@testing-library/vue)

Vue Testing Library 是一组专注于测试组件而不依赖实现细节的工具。由于在设计时就充分考虑了可访问性,它采用的方案也使重构变得轻而易举。

它的指导原则是,与软件使用方式相似的测试越多,它们提供的可信度就越高。

Vue Test Utils

Vue Test Utils 是官方的偏底层的组件测试库,它是为用户提供对 Vue 特定 API 的访问而编写的。如果你对测试 Vue 应用不熟悉,我们建议你使用 Vue Testing Library,它是 Vue Test Utils 的抽象。该库有很详尽的API文档 Vue Test Utils

示例

<template>
  <div>
    <input v-model="username">
    <div
      v-if="error"
      class="error"
    >
      {{ error }}
    </div>
  </div>
</template>

<script>
export default {
  name: 'Hello',
  data () {
    return {
      username: ''
    }
  },

  computed: {
    error () {
      return this.username.trim().length < 7
        ? 'Please enter a longer username'
        : ''
    }
  }
}
</script>

以上就是vue 单元测试的推荐插件和使用示例的详细内容,更多关于vue 单元测试的资料请关注我们其它相关文章!

(0)

相关推荐

  • vue 单元测试初探

    目录 前言 为什么要引进单元测试? 单元测试概述 测试开发的模式 1. 测试驱动开发(TDD - Test Driven Development) 2. 行为驱动开发(BDD - Behavior Driven Development) Vue中的单元测试 框架选择 Vue Test Utils 文档 前言 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元

  • vue项目中添加单元测试的方法

    从网上找了很多例子关于单元测试,都是如何新建项目的时候的添加单元测试,用vue-cli中怎么添加,但是我的项目已经生成了,不能再一次重新初始化,这时如何添加单元测试,这里面遇到了好多坑,写在这里记录一下心得. 1.用vue-cli生成一个新的项目,把单元测试需要的文件直接复制到你的项目中 vue init webpack vuetest 2.安装Karma+Mocha模块,这个模块依赖比较多,我在遇到了坑,解决问题半天发现缺少了某个模块,在这里全部列出需要的模块 复制代码 代码如下: npm i

  • 教你如何编写Vue.js的单元测试的方法

    Vue.js是一个JavaScript框架,可用于构建Web应用程序的前端框架.特别是在创建复杂功能时,对于每个项目,有必要在我们的应用程序中查看所有内容,并检查它是否符合预期.然而,对于大型项目,每次新的更新后,检查每个功能将变得很麻烦.因此,我们可以创建可以一直运行的自动化测试,并保证我们的代码可以正常运行.在本文中,我们将为VueJS创建一些简单的单元测试. 要进行测试,我们将先制作一个基本的待办事项列表组件.我们将测试该列表是否正确显示,并且用户可以将新项目添加到待办事项列表中.希望在本

  • 详解使用jest对vue项目进行单元测试

    最近领导对前端提出了新的要求,要进行单元测试.之前使用vue做了一个快报名小程序的pc端页面,既然要做单元测试,就准备用这个项目了,之前有些react的经验,vue还是第一遭 vue-cli3.0单元测试方面更加完备,就先升级到了cli3.0,因为项目是用typescript写的,需要ts-jest,得到jest的配置如下 { "jest": { "moduleFileExtensions": [ "js", "jsx", &

  • 对 Vue-Router 进行单元测试的方法

    由于路由通常会把多个组件牵扯到一起操作,所以一般对其的测试都在 端到端/集成 阶段进行,处于测试金字塔的上层.不过,做一些路由的单元测试还是大有益处的. 对于与路由交互的组件,有两种测试方式: 使用一个真正的 router 实例 mock 掉 $route  和 $router  全局对象 因为大多数 Vue 应用用的都是官方的 Vue Router,所以本文会谈谈这个. 创建组件 我们会弄一个简单的 <App>,包含一个  /nested-child  路由.访问 /nested-child

  • 详解Vue单元测试case写法

    书接上文,karma+webpack搭建vue单元测试环境介绍了vue单元测试环境搭建及查看源文件的测试覆盖覆盖率.今天来说一下vue单元测试思路和case的写法.测试框架使用jasmine,语法参考. 代码地址:https://github.com/MarxJiao/vue-karma-test/tree/spec-demo 测试关注点 对于vue组件,单元测试测试主要关注以下几点: vue组件加载后,各数据模型是否符合预期 定义的方法是否可用 filter是否可用 带有props的组件,数据

  • 详解关于Vue单元测试的几个坑

    一.写在前面 这篇文章的代码使用karma,mocha,chai,sinon-chai配合Vue的实例属性进行单元测试 二.全局的组件的坑 由于我的g-icon是全局注册的,所以使用g-input组件时的时候g-icon是直接用的,所以测试时有关icon的代码永远是错的. 把g-icon局部注册的组件 三.在测试中触发点击事件 模拟我在app.vue里使用g-input组件 <g-input v-model="message"></g-input> 使用new

  • 浅谈Vue组件单元测试究竟测试什么

    关于 Vue 组件单元测试最常见的问题就是"我究竟应该测试什么?" 虽然测试过多或过少都是可能的,但我的观察是,开发人员通常会测试过头.毕竟,没有人愿意自己的组件未经测试从而导致应用程序在生产中崩溃. 在本文中,我将分享一些用于组件单元测试的指导原则,这些指导原则可以确保在编写测试上不会花费大量时间,但是可以提供足够的覆盖率来避免错误. 本文假设你已经了解 Jest 和 Vue Test Utils. 示例组件 在学习这些指导原则之前,我们先来熟悉下要测试的示例组件.组件名为 Item

  • 使用Karma做vue组件单元测试的实现

    养成良好的编码习惯,一个合格的程序员需要掌握一些编写单元测试的能力.单元测试也可以整体上提升我们的代码质量,这里介绍下 VUE 组件的单元测试. 如果想直接通过 Demo 学习,可以跳过下面的内容,点击这里下载示例 技术栈 @vue/test-utils[1.0.0-beta.30] istanbul-instrumenter-loader[3.0.1] karma[4.4.1] karma-chrome-launcher[3.1.0] karma-mocha[1.3.0] karma-sour

  • 如何为vue的项目添加单元测试

    动机 单元测试能避免出现一些代码运行结果与预期不符的错误,通常是一些比较低级但又难以发现的问题. 粗心且懒,在每次调整之后,需要不断地检查代码,反复去走流程.担心由于自己的改动而导致了逻辑上的错误.而这里面的一大部分工作其实可以让单元测试来完成. 有了单元测试之后,可以对代码本身形成一种规范.如果在进行单元测试过程中发现自己的一些代码不方便进行测试,那么你可能需要重新审视这些代码,看是否有一些设计上不合理或者可以优化的地方. 嵌入了单元测试的项目显得更加的专业,也会更有逼格,测试本身是开发环节需

  • vue-cli3 karma单元测试的实现

    Karma Karma是一个测试工具,能让你的代码在浏览器环境下测试.代码可能是设计在浏览器端执行的,在node环境下测试可能有些bug暴露不出来(比如要做样式的测试),如果你的代码只会运行在node端,那么你不需要用karma. vue-cli3 结合karma 经过查找搜索到vue-cli-plugin-unit-karma插件, 集成vue-cli3与karma,但是结果不那么完美,执行的时候还是报错. 不过功夫不负有心人,终于找到解决方法,步骤如下 安装依赖 npm install --

随机推荐