当前位置: 首页 > news >正文

在 Jest 结合 Vue Test Utils 进行组件测试时,`shallowMount` 是一个常用的方法,用于创建组件的**浅渲染实例**

在 Jest 结合 Vue Test Utils 进行组件测试时,shallowMount 是一个常用的方法,用于创建组件的浅渲染实例。它的核心特点是不会递归渲染子组件,只会将子组件渲染为占位符(如 <ChildComponent />),从而专注于测试当前组件本身的逻辑,避免子组件的行为干扰测试结果。

基本用法

import { shallowMount } from '@vue/test-utils';
import MyComponent from '@/components/MyComponent.vue';describe('MyComponent', () => {it('renders correctly', () => {// 浅渲染组件const wrapper = shallowMount(MyComponent, {propsData: {  // 传递 propsmsg: 'Hello'},mocks: {  // 模拟全局对象(如 $store、$router)$store: {state: { count: 0 }}}});// 断言组件内容expect(wrapper.text()).toContain('Hello');});
});

mount 的区别

  • shallowMount:只渲染当前组件,子组件以占位符形式存在,适合隔离测试当前组件
  • mount:递归渲染所有子组件,适合测试组件间交互(如父子组件通信)。

常用配置选项

  • propsData:传递组件的 props。
  • mocks:模拟全局属性或方法(如 $t$router.push)。
  • stubs:手动指定需要 stub 的组件(即使是当前组件的子组件,也可强制 stub)。
  • data:覆盖组件的初始 data。
  • methods:覆盖组件的方法(用于模拟或劫持方法)。

注意事项

  1. 子组件隔离:由于不渲染真实子组件,若测试逻辑依赖子组件的行为(如事件触发),需手动 stub 子组件的方法或事件。

    const wrapper = shallowMount(MyComponent, {stubs: {ChildComponent: {template: '<div @click="handleClick" />',methods: { handleClick: jest.fn() }}}
    });
    
  2. 样式与 DOM 结构:浅渲染可能无法完全反映真实 DOM 结构(如子组件的 HTML),若需测试完整渲染结果,应使用 mount

  3. Vue 3 兼容性:在 Vue 3 中,shallowMount 已整合到 @vue/test-utils v2+ 中,用法与 Vue 2 类似,但需注意部分 API 差异(如 props 替代 propsData)。

shallowMount 是组件单元测试的利器,尤其适合验证组件自身的渲染逻辑、props 接收、事件触发等核心功能,推荐优先使用以提高测试效率和隔离性。

http://www.dtcms.com/a/561071.html

相关文章:

  • 深入理解 NAT、代理服务与内网穿透:解决网络通信的关键技术
  • Redisson 与 Spring Boot 3.4 整合指南
  • 建设房地产公司网站的费用程序员网站开发框架
  • wordpress 新闻类网站什么网站可以免费做护师题
  • C++笔记-14-结构体
  • .NET周刊【10月第3期 2025-10-19】
  • 视频时间基 (time_base) 详解:时间的“刻度单位”
  • 网站开发最佳实践wordpress连接公众号
  • 数据库-基础命令
  • 蚌埠做企业网站wordpress外网访问不了
  • Linux网络接口配置:静态IP与动态IP设置(附代码示例)
  • 做同城特价的网站qwins是哪个网站做的
  • 基础算法精讲 03 | 滑动窗口|ASCII表如如何使用|substr函数
  • 中国建设银行官网首页 网站首页网站文件目录结构
  • GitHub Actions for AI:构建企业级模型CI/CD流水线
  • DevOps——CI/CD持续集成与持续交付/部署的理解与部署
  • 建立网站的公司平台七牛云存储 wordpress连接失败
  • 利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
  • 深圳网站设计网站制作深圳网站建设推进
  • 电力电子技术 第十三章——PWM逆变器
  • 网站建设方案应该怎么写wordpress用户评论图片
  • xtuoj 2021
  • 数据科学每日总结--Day8--数据挖掘
  • 达梦DEM监控工具部署
  • 机器学习实践项目(二)- 房价预测 - 认识数据
  • 李宁运动服网站建设规划书网站内链少改怎么做
  • 安装JDK安装GIT安装IDEA
  • 定制报表系统设计与实现
  • 最具价值的网站建设商业策划公司十大公司
  • 网站开发设计公东莞智通人才招聘网官网