该系列是为了让看过Vue官方文件或学过Vue但是却不知道怎麽下手去重构现在有的网站而去规画的系列文章,在这边整理了许多我自己使用Vue重构很多网站的经验分享给读者们。
什麽?单元测试?当你开始接触开发专案有一段时间後,你会开始渐渐听到这个专业术语,就让我来大家了解一下什麽是单元测试
影片搭配文章看学习效果会更好喔
简单来说程序码的最小单位进行测试,确保程序逻辑不会在团队维护的过程中出错,维护程序码的品质。所谓的最小单位,我用个例子来举例,假如你今天有一个主功能是由 A跟B两个功能所组成的,而这两个功能就是我们所说的最小单位,所以在撰写测试的时候我们重点在针对A跟B来进行测试,主功能的测试中不会包含 A跟B的测试,这样的测试就是我们所说的单元测试。
我先列出几个优缺点,我们来比较一下
从优缺点可以知道说,撰写单元测试的初期对於开发的效益并不高,先撇开不熟悉测试来说,光就在公司常常会因为需求改变就要来来回回改写程序,我就要再花许多时间来重写测试,怎麽想都对於有时辰压力的专案来说不是那麽划算,所以往往会在这个时候放弃写测试,就像我如果在初期会遇到不断修改的需求的时候,我也不会先写测试(笑
那什麽情况下该写单元测试?其实产品开发的中期的时候,基本上中期的时候大多数的平台规格都确定了差不多,就可以考虑开始补单元测试,因为会开始遇到前面做好的功能因为新的功能造成预期外的错误,以及专案由其他同事接手的时候改坏某个功能但是同事不知道,这些我们都可以透过测试来了解,避免把测试没通过的案子给推上线。
开始写测试前我们要先了解一下我们是透过何种技术来撰写测试的
Jest 是由 Facebook 开发维护的一款 JavaScript 测试框架,可以用简洁的语法来测试你的 function 。
Vue Test Utils 是 Vue 官方推出的组件单元测试框架,简化组件的测试。它提供了一些方法来以区分挂载组件之间交互。
我们会透过以上两种测试用的框架来针对我们 vue 的 component 进行测试,Vue Test Utils 负责解析我们的 component,让我们可以不透过 build 就可以模拟 DOM 被渲染出来的结果,再透过 Jest 撰写 test case 来验证是否符合预期。
如果你是新建立一个专案,请你选择 Unit Testing -> Jest,这样专案预设就会有安装 jest 跟 Vue Test Utils
如果你在建立专案的时候没有选择 Unit Testing 的话你可以输入以下指令
vue add unit-jest
现有的 CLI 专案,也可以加入 jest 跟 Vue Test Utils
先来带大家来看一下基本的语法
describe("Test to do list", () => {
it("Test to do 1", () => {
expect(1 + 1).toBe(2);
});
test("Test to do 2", () => {
expect(2 + 1).toBe(3);
});
});
以上的这些语法属於 jest 的语法 API
接下来看看如何使用 Vue Test Utils 负责解析我们的 Component
<!-- HelloWorld.vue -->
<template>
<h1>new message</h1>
</template>
import { shallowMount } from "@vue/test-utils";
import HelloWorld from "@/components/HelloWorld.vue";
describe("HelloWorld.vue", () => {
it("renders msg text", () => {
const wrapper = shallowMount(HelloWorld);
expect(wrapper.text()).toBe("new message");
});
});
我们可以直接使用 shallowMount 这个方法来渲染我们的 Component,再透过 .text( ) 这个方法去取得 Component 里面所有的文字内容来做比对,是不是觉得很简单呢~
好啦!关於单元测试的部分就到这边先告一段落,如果你还想知道更多有关於单元测试的使用以及使用情境,欢迎购买我的新课程 Vue 单元测试 vue-test-utils|入门
课程网址:https://thecodingpro.com/courses/vue-test-utils
原价新台币 2200 元,目前还是维持预购价新台币 1800元,现在输入折扣码「 PAJNBFUNO300」马上再折300元优惠。
Mike 的 Youtube 频道
Mike的medium
MIke 的官方 line 帐号,好友搜寻 @mike_cheng
>>: 如何自己设计一套ERP程序 前传-写ERP之前要决定的20件事 前言
GitHub Repo https://github.com/b2etw/Spring-Kotlin...
Get our environment set up # modules we'll use imp...
本文目标 IEEE-754 规范对於工程发展的重要性 认识浮点数 使用演算法改善浮点数运算时带来的误...
前言 我们今天要试着解决昨天阅读 WhenAll 留下来的两个问题 为何要 "atomic...
正当愁这次Side Project题目要找甚麽来做时,刚好运气不错碰到了一个随机事件。 让我决定了这...