最后,我们有一个按钮,用来通过发出一个自定义事件:clear-notification来解除通知 。
我们应该测试什么?现在我们对需要测试的组件的结构有了了解,我们可以再思考一下,这个组件需要做什么,以达到预期的功能 。
我们的测试需要检查以下内容:
- 该组件根据通知类型渲染出正确的样式 。
- 当 message 为空时,通知就会逐渐消失 。
- 当关闭按钮被点击时,该组件会发出一个事件 。
安装测试依赖项在编写单元测试时,可能会有这样的情况:我们需要用一个什么都不做的假组件来替换组件的现有实现 。这被称为 **stub(存根)**,为了在测试中使用存根,我们需要访问Vue Test Utils的mount方法,这是Vue.js的官方测试工具库 。
现在我们来安装Vue Test Utils 。
安装
npm install --save-dev @vue/test-utils@next# oryarn add --dev @vue/test-utils@next
现在,在我们的测试文件中,我们可以从"@vue/test-utils"导入 mount 。notification.test.js
import { mount } from "@vue/test-utils";
在测试中,我们还需要能够模拟 DOM 。Vitest目前同时支持 hAppy-dom 和 jsdom 。对于这个演示,我们将使用happy-dom,然后安装它:yarn add happy-dom --dev
安装后,我们可以在测试文件的顶部添加以下注释...notification.test.js
/** * @vitest-environment happy-dom */
.或者将此添加到 vite/vitest 配置文件中,以避免在有多个需要 happy-dom 工作的测试文件时出现重复情况 。vite.config.js
import { defineConfig } from "vite";import vue from "@vitejs/plugin-vue";// https://vitejs.dev/config/export default defineConfig({plugins: [vue()],test: {environment: "happy-dom",},});
因为我们只有一个测试文件,所以我们可以选择第一个选项,所以我们测试文件内容如下:notification.test.js
/** * @vitest-environment happy-dom */import { mount } from "@vue/test-utils";
有了这些依赖关系,我们现在可以导入我们要测试的组件 。notification.test.js
/** * @vitest-environment happy-dom */import { mount } from "@vue/test-utils";import notification from "../components/notification.vue";
常见的Vitest方法为了编写测试,我们需要利用以下常见的方法,这些方法可以从 Vitest 导入 。- describe:这个函数接受一个名字和一个函数,用于将相关的测试组合在一起 。当你为一个有多个测试点(如逻辑和外观)的组件编写测试时,它就会很方便 。
- test/it:这个函数代表被测试的实际代码块 。它接受一个字符串,通常是测试案例的名称或描述(例如,渲染成功的正确样式)和另一个函数,所有的检查和测试在这里进行 。
- expect:这个函数用于测试值或创建断言 。它接受一个预期为实际值(字符串、数字、对象等)的参数x,并使用任何支持的方法对其进行评估(例如toEqual(y),检查 x 是否与 y 相同) 。
推荐阅读
- 蒸鱼豉油可以炒菜吗
- 怎样制作红油辣椒
- 如何使用健身器材
- 分享微信使用技巧,快来涨姿势啦
- 海外版抖音TikTok使用教程详解
- 减肥方法使用新的软呼啦圈
- 如何在 Vuejs 中使用 Supertokens 的预构建 UI
- 在Java 8及更高版本中使用Java流
- 这4款好用不贵的卷发棒了解一下! 哪种卷发棒好用
- 热熔胶我们常用的几种实用的使用方法 热熔胶怎么用