vue 官方测试工具 unit-jest 实用教程(含实战范例:登录组件的测试)

简介: vue 官方测试工具 unit-jest 实用教程(含实战范例:登录组件的测试)

安装

vue add unit-jest

实战范例:登录组件的测试

src\views\Login.vue

<template>
  <div v-if="isLogin">
    <p>欢迎你,{{ userName }}</p>
    <button @click="$emit('logout', false)">登出</button>
  </div>
  <button v-else @click="$emit('login', true)">登录</button>
</template>

<script setup lang="ts">
import { defineProps } from "vue";
defineProps(["isLogin", "userName"]);
</script>

tests\unit\example.spec.ts

此文件在安装测试工具后会自动生成,内部代码自行编写。

具体用法,详见注释:

(底层实现使用的 jest,不太理解的地方可参考 jest 教程

// 从测试工具中导入必要的函数和类型
import { shallowMount, VueWrapper } from "@vue/test-utils";
// 导入要测试的组件
import Login from "@/views/Login.vue";

// 声明变量 wrapper 和其类型
let wrapper: VueWrapper<any>;

// 描述要测试的单元内容
describe("Login.vue", () => {
  // 在所有测试案例之前执行 beforeAll ,
  beforeAll(() => {
    // 挂载渲染组件 shallowMount 第一个参数为组件,第二个参数为配置信息,如传入组件的 props
    wrapper = shallowMount(Login, {
      props: {
        isLogin: false,
      },
    });
  });
  // 测试案例1
  it("测试未登录时,显示登录按钮", () => {
    // 打印页面最终渲染的html
    console.log(wrapper.html());
    // 判定页面中 button 标签内的文字为 "登录"
    expect(wrapper.get("button").text()).toBe("登录");
  });
  // 测试案例2
  it("测试登录后,显示登出按钮", async () => {
    // 用 setProps 改变传入组件的props,使用 async await 实现异步等待页面重新渲染
    await wrapper.setProps({
      isLogin: true,
      userName: "朝阳",
    });
    console.log(wrapper.html());
    // 判定页面中 button 标签内的文字为 "登出"
    expect(wrapper.get("button").text()).toBe("登出");
  });
});

执行测试

npm run test:unit
 

测试结果

目录
相关文章
|
2月前
|
存储 安全 API
认证服务---OAuth2.0基本介绍,微博登录测试【上篇】
这篇文章是关于OAuth2.0的介绍和微博登录测试的教程,详细解释了OAuth2.0的基本概念和授权流程,并指导读者如何在新浪微博开放平台进行应用创建、设置回调地址,以及使用Postman工具进行授权测试,为实现第三方微博登录功能做准备。
认证服务---OAuth2.0基本介绍,微博登录测试【上篇】
|
9天前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
24 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
23天前
|
JavaScript 前端开发 数据库
测试开发之路--Flask 之旅 (四):登录与权限控制
本文介绍了如何使用 Flask-Security 和 Flask-Login 实现权限管理和用户登录功能。首先讲解了 Flask 的消息闪现功能,用于向模板传递信息。接着介绍了如何利用 Flask-Security 的 `roles_required` 和 `roles_accepted` 装饰器保护页面,并展示了如何通过 `current_user` 获取当前用户信息。最后提到了使用 Flask-Login 时应避免升级至 0.4.0 版本,以防出现兼容性问题。通过这些技术,搭建了一个基本的用户权限管理系统。
51 6
测试开发之路--Flask 之旅 (四):登录与权限控制
|
4天前
|
JavaScript
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
12 3
|
11天前
|
JavaScript 测试技术
vue配置生产环境.env.production、测试环境.env.development
该文章介绍了如何在Vue项目中配置和使用不同的环境变量文件(.env、.env.production、.env.development)以适应开发、测试和生产环境,并通过修改`package.json`中的scripts来实现不同环境的打包。
38 0
vue配置生产环境.env.production、测试环境.env.development
|
2月前
|
测试技术 API
软件测试:Postman 工具的使用。开发及测试均需要掌握的测试工具
这篇文章详细介绍了Postman工具的各个模块功能,包括创建请求、集合、环境、自动化测试等,并解释了如何使用Postman进行GET、POST、PUT和DELETE等常见HTTP请求的测试。
|
2月前
|
JavaScript 前端开发 测试技术
Vue.js开发者必看!Vue Test Utils携手端到端测试,打造无懈可击的应用体验,引领前端测试新风尚!
【8月更文挑战第30天】随着Vue.js的普及,构建可靠的Vue应用至关重要。测试不仅能确保应用质量,还能提升开发效率。Vue Test Utils作为官方测试库,方便进行单元测试,而结合端到端(E2E)测试,则能构建全面的测试体系,保障应用稳定性。本文将带你深入了解如何使用Vue Test Utils进行单元测试,通过具体示例展示如何测试组件行为;并通过Cypress进行E2E测试,确保整个应用流程的正确性。无论是单元测试还是E2E测试,都能显著提高Vue应用的质量,让你更加自信地交付高质量的应用。
45 0
|
3月前
|
开发框架 前端开发 JavaScript
ABP框架测试信息---Winform端、动态网站、Vue&Element管理后端等
ABP框架测试信息---Winform端、动态网站、Vue&Element管理后端等
|
2月前
|
JSON jenkins 测试技术
Python接口自动化测试框架(工具篇)-- 接口测试工具HTTPRUNNER
本文介绍了Python接口自动化测试框架HTTPRunner,包括其安装、使用方法,并通过实际操作演示了如何利用HTTPRunner进行接口测试,同时还探讨了HTTPRunner作为接口自动化测试解决方案的可能性和实用性。
44 0
|
3月前
|
Java 开发者 运维
开发与运维测试问题之OpenJDK官方还未正式发布Compact Object Headers如何解决
开发与运维测试问题之OpenJDK官方还未正式发布Compact Object Headers如何解决
31 1
下一篇
无影云桌面