vue单元测试学习笔记www.129028.com金沙

日期:2020-05-07编辑作者:Web前端

时间: 2019-09-08阅读: 146标签: 测试

单元测试是什么

维基百科:单元测试是针对 程序的最小单元 来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。一个单元可能是单个程序、类、对象、方法等。
通俗百科:单元测试,是为了测试某一个类的某一个方法能否正常工作,而写的测试代码。

单元测试,就是为了测试某一个类或者是某一个方法能否正常工作而写的测试代码。

单元测试的意义

减少bug、提高代码质量、快速定位bug、减少调试时间、放心重构。

关于单元测试

单元测试的目的

当你的项目足够大的时候,在叠加模块和组件的过程中,是很有可能影响之前的模块。但是被影响的模块已经通过了测试,我们在迭代的时候,很少有测试人员会去重新测试这个系统。所以, 被影响的模块很可能就有了一个隐形的bug被部署到线上。因此我们采用自动化测试。最主要的作用是对于大型项目,在每次迭代的时候, 可以保证整个系统的正确运行, 确保系统的健壮。

是什么:单元测试是针对 程序的最小单元 来进行正确性检验的测试工作。就是测试某一个页面或者是某一个方法来进行测试的代码单元。

当前vue框架的选择

vue官方推荐一个叫做karma的自动化测试,它产生一个 Web 服务环境来运行项目代码,并且执行测试,该工具在Vue中的主要作用是将项目运行在各种主流Web浏览器进行测试。换句话说,它是一个测试工具,能让你的代码在浏览器环境下测试。

意义:可以减少bug,提高代码的效率质量,同时可以快速定位bug存在的地点位置,减少调试时间,放心重构代码。

搭建基于vue框架的单元测试

在创建项目之前,你还需要了解Mocha和Chai。
Mocha是一个 JavaScript 测试框架,就是运行测试的工具。通过它,可以为JavaScript应用添加测试,从而保证代码的质量,mocha里的常用命令和用法不算太多,可以看阮老师的《测试框架 Mocha 实例教程》就可以大致了解。
Chai是一个 Mocha 可以使用的断言库,就是判断源码的实际执行结果与预期结果是否一致。具体可以参考《简书·Chai.js断言库API中文文档》。


目的:当我们的项目足够大的时候,在重叠的模块和组件的过程中,可能会有影响到之前的模板。

好吧,Let's do it!

测试命令

一、创建项目

npm run unit
(1) 利用vue-cli来创建vueJS项目,它帮我们包办一切。运行 npm install 来安装依赖:
npm install -g vue-cli
vue init webpack projectName

www.129028.com金沙,测试的文件内容(List.vue):

(2) 在这个过程中,会遇到几个提示,是否安装 vue-router、Karma、Mocha的提示后,输入Y来引入这些工具,然后开始安装依赖:
cd projectName
npm install
 template div h1My To Do List/h1 br/ ul !-- 红线警告是这个编辑器不支持这种格式的写法 -- li v-for="item in listItems"{{ item }}/li /ul /div /template script export default { name: "list", data() { return { listItems: ["buy food", "play games", "sleep"] }; } }; /script
安装完成后,我们可以在项目中找到一下目录:build、config、node_modules、src、static 、test。

测试的路由配置(index.js):

(3) 执行下面的命令,这个命令将会在本地运行你的应用并在浏览器中打开:
npm run dev
 import Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorld' import List from '@/components/List' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld }, { path: '/to-do', name: 'ToDo', components: List }, ] });

二、搭建测试文件

配置的测试文件内容(List.spc.js):

(1) 我们演示一个最基本的(官方示例)
 import Vue from 'vue'; import List from '@/components/List'; describe('List.vue', () = { it('displays items from the list', () = { // 获取mount中的组件实例 const Constructor = Vue.extend(List); const ListComponent = new Constructor().$mount(); // 测试是否错误代码 // expect(vmComponent.count).toBe(2); }) })
在src/components里面创建一个叫MyComponent.vue的文件,以下就是这个文件的代码。
<template>
    <div>
      {{ count }}
      <button @click="increment">自增</button>
    </div>
</template>
<script>
export default {
  data () {
    return {
      count: 0
    }
  },
  methods: {
    increment () {
      this.count++
    }
  }
}
</script>

本文由www.129028.com金沙发布于Web前端,转载请注明出处:vue单元测试学习笔记www.129028.com金沙

关键词:

前端工程师如何才能不焦虑?

时间: 2019-09-09阅读: 99标签: 焦虑引言 时间: 2019-07-28阅读: 247标签: 技术 进入2019年,中国互联网充满了焦虑的气息,不...

详细>>

详解使用React.memo来优化函数组件的性能_javascript技巧_脚本之家

时间: 2019-09-07阅读: 224标签: 优化 React核心开发团队一直都努力地让React变得更快。在React中可以用来优化组件性能的方...

详细>>

简单实现一个vue的双向绑定www.129028.com金沙:

时间: 2019-09-07阅读: 149标签: 双向绑定 ## 属性的类型 - 属性可分为类属性和实例属性 首先我们来看一些,vue的基本使...

详细>>

Omi框架Store体系的前世今生

时间: 2019-09-09阅读: 925标签: store 原文链接-https://github.com/AlloyTeam/omi 在src下新建 store/myStore.js Store 体系 先说说Store系统...

详细>>