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
 

测试结果

目录
相关文章
|
9月前
|
测试技术
自动化测试登录后的功能
在自动化测试的时候,往往许多功能需要登录以后才可以进行操作的,在这里我介绍一种方法,在登录以后将Cookies信息存入本地文件,在测试登录以后操作的时候再从本地文件把信息调出来存入Cookies
168 4
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
1225 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
1016 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
453 35
|
JavaScript 前端开发 Java
使用ChatGPT生成关于登录产品代码的单元测试代码
使用ChatGPT生成关于登录产品代码的单元测试代码
280 16
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
JavaScript 前端开发 数据库
测试开发之路--Flask 之旅 (四):登录与权限控制
本文介绍了如何使用 Flask-Security 和 Flask-Login 实现权限管理和用户登录功能。首先讲解了 Flask 的消息闪现功能,用于向模板传递信息。接着介绍了如何利用 Flask-Security 的 `roles_required` 和 `roles_accepted` 装饰器保护页面,并展示了如何通过 `current_user` 获取当前用户信息。最后提到了使用 Flask-Login 时应避免升级至 0.4.0 版本,以防出现兼容性问题。通过这些技术,搭建了一个基本的用户权限管理系统。
796 6
测试开发之路--Flask 之旅 (四):登录与权限控制
|
JavaScript 测试技术 API
Jest进阶:测试 Vue 组件
Jest进阶:测试 Vue 组件
|
前端开发 JavaScript 安全
学习如何为 React 组件编写测试:
学习如何为 React 组件编写测试:
230 2