首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用svg-sprite-loader导入SVG的Jest测试组件

SVG-Sprite-Loader是一个Webpack加载器,用于将SVG图标打包成一个SVG精灵图,并生成对应的CSS样式。Jest是一个用于JavaScript代码测试的框架。在使用SVG-Sprite-Loader导入SVG的Jest测试组件时,可以按照以下步骤进行操作:

  1. 首先,确保已经安装了Webpack和Jest,并且配置了相应的Webpack配置文件和Jest配置文件。
  2. 在Webpack配置文件中,添加SVG-Sprite-Loader作为模块的加载器。可以使用npm或者yarn安装SVG-Sprite-Loader,并在Webpack配置文件中进行如下配置:
代码语言:txt
复制
module: {
  rules: [
    {
      test: /\.svg$/,
      use: [
        'svg-sprite-loader',
        'svgo-loader'
      ]
    }
  ]
}

这样配置后,Webpack会将所有以.svg结尾的文件交给SVG-Sprite-Loader处理,并将它们打包成一个SVG精灵图。

  1. 在Jest配置文件中,添加对SVG文件的处理。可以使用npm或者yarn安装jest-svg-transformer,并在Jest配置文件中进行如下配置:
代码语言:txt
复制
transform: {
  '^.+\\.svg$': 'jest-svg-transformer'
}

这样配置后,Jest会使用jest-svg-transformer对SVG文件进行处理,以便在测试组件中正确导入SVG。

  1. 在测试组件中,使用import语句导入需要测试的组件,并使用相应的SVG图标。例如:
代码语言:txt
复制
import React from 'react';
import { render } from '@testing-library/react';
import MyComponent from './MyComponent';
import { ReactComponent as MyIcon } from './my-icon.svg';

test('renders MyComponent with MyIcon', () => {
  render(
    <MyComponent icon={<MyIcon />} />
  );
});

在这个例子中,我们导入了一个名为MyIcon的SVG图标,并将其作为props传递给了MyComponent组件。

总结: 使用SVG-Sprite-Loader导入SVG的Jest测试组件的步骤包括配置Webpack加载器和Jest处理器,并在测试组件中正确导入SVG图标。这样可以确保在Jest测试中正确使用SVG图标,并进行相应的断言和验证。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用svg-sprite-loader 遇到问题

趁记忆还热乎 赶紧过来记录一下自己踩坑记录 现有的项目是从另一个项目移植过来, 并不是完全移植 为了减小项目的体积 前端组长将一些暂时用不到组件 node包都剔除了 这也就引出了一下问题...今天调试菜单图标的时候 发现项目中菜单图片渲染用到是icon-svg 这个组件 但怎么找都找不到这个组件 于是我才原有项目中找了一下 copy过来 但这样子仍然不行啊,svg标签出来了 但样式...svg内容没有出来, 于是继续把样式扒过来, 样式对了 但svg内容就是死活出不来, 于是我一直搜这个svg在哪个地方引入 怎么注入到页面的 折腾了一上午,终于让我发现了 一句话 原项目中这样写...把svg-sprite-loader 引入 引入之后 配置好编译好目录 { test: /\.svg$/, loader: 'svg-sprite-loader',...[ext]') } }, 二个loader都处理了svg文件 导致svg-sprite-loader'在编译时候 并不是svg源文件 于是出错了 解决方案: 为二个loader

1.5K20

Vue | 使用 SVG sprite loader 来引入 svg

但是我们现在在用是 Vue 官方代码是这样 // webpack >= 2 { test: /\.svg$/, loader: 'svg-sprite-loader', options...').exclude.add(dir) } } 其他备注 // svg 相关组件版本 "svg-sprite-loader": "^6.0.11", "svgo-loader".../assets/icons', true, /\.svg$/));} catch (error) {console.log(error);} // 如果不加 try,在单元测试时候可能会遇到问题.../assets/icons', true, /\.svg$/));} catch (error) {console.log(error);} // 如果不加 try,在单元测试时候可能会遇到问题...我们可以使用一个叫做 svgo-loader 插件来解决此问题 不知道是什么原因,高版本这个插件会导致加载不出 svg bug,我使用是以下版本,是正常使用 // 和上文提到一样 {

3.1K20

JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件

本篇教程是 JavaScript 测试系列实战 第一篇教程,首先介绍了测试类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染...Jest 测试,我们来详细讲解一下: 我们先导入需要测试单元/模块 test 函数定义了一个测试用例,第一个参数就是用例描述,一般是一句完整描述,例如上面的 dividing 6 by 3 equals...因此这里建议直接使用 npx jest 执行测试。 编写第一组测试 每个测试文件通常有多个测试用例。Jest 允许我们通过 describe 函数对测试用例进行分组,它创建了一个可以组合多个测试块。...Jest 测试文件中使用它。...配置 jest-enzyme 你应该还记得,在刚才测试代码中,我们还是使用Jest 自带 Matcher(toEqual)。

2.9K10

如何在Vue项目中更优雅地使用svg

最近看项目视频时候对里面使用 svg 方式感到很好奇,于是去网上查了一下,发现 svg 竟然也有类似于 css 雪碧图一样用法,也就是 svg-sprite(孤陋寡闻了),而且配合插件后能够以组件方式使用...每次要使用图标都得写这么一段代码,并不是很方便,是否可以像使用组件那样使用图标? 这里关键是使用 svg-sprite-loader 这个插件。...Vue项目中更优雅地使用svg-1_2.png 接下来封装图标组件。...'@/components/common/icon/SvgIcon.vue' Vue.component('svg-icon', SvgIcon) // 让 icons/svg下面的图片自动导入,而不是每次手动导入...所以才使用svg-sprite-loader 插件,这样每次新增图标,只需要下载图标并放到对应文件夹即可。

12.3K21

解锁SVG新姿势:ChatGPT绘制图标+SVG Symbol自动导入

4.2 自动化导入 为了进一步简化该流程,我们可以使用Webpack和svg-sprite-loader自动导入SVG Symbol。...}, ], }, ] } 该规则将处理所有以.svg结尾文件,并使用svg-sprite-loader将它们转换为SVG Symbol元素。...该组件使用了元素引用了SVG文件中Symbol元素。其中,name属性用于指定Symbol元素ID。...import "@/images/svg/rough.svg"; 5 总结 本文主要介绍了两个方法,分别是使用ChatGPT自动生成SVG代码和使用Webpack和svg-sprite-loader自动导入...综上所述,通过使用ChatGPT自动生成SVG代码和使用Webpack和svg-sprite-loader自动导入SVG Symbol,我们可以更加便捷地在代码中使用SVG图标,提高开发效率和代码质量。

3.2K10

在 Vue 项目中更优雅使用 icon

前言 在 Web 开发中,我们经常会用到 icon,icon 使用经历了从图片到字体,再到 svg 演变过程,也产生出相应 icon 库,如雪碧图、Font Awesome、Iconfont 等等...随着前端发展,icon 使用方案落在了 svg 上,svg 有着矢量图优势,可以无限放大而不失真,而且 svg 本身就是一种 XML 文件,可以直接在 HTML 中使用,也可以通过 CSS 进行样式控制...,但是在 Vue 项目中使用 svg 时,我们会遇到一些问题,本文将介绍如何在 Vue 项目中更优雅使用 svg icon。...工具 svg-sprite-loader svgo-loader svg-sprite-loader用来打包 svg 图标,svgo-loader 来精简我们 svg 内容。...参考资料 手摸手,带你优雅使用 icon 未来必热:SVG Sprites 技术介绍 SVG 精简压缩工具 svgo 简介和初体验 svg-sprite-loader svgo svgo-loader

42740

如何在VUE项目中引入SVG图标

然而,SVG并非在所有情形下皆为最佳选择。对于一些复杂度较高及色彩丰富图像,例如照片,使用位图可能更为恰当。因此,在每个具体项目中,皆需依据实际需求而决定使用何者。 具体过程 一....安装 npm i svg-sprite-loader --save 二. 在components文件夹中,建新文件夹曰SvgIcon,再于文件夹下建新文件,名之曰index.vue。...其成立之目的,正是为了使吾等在项目中使用 SVG 图标时能变得更为便捷。 name: 'SvgIcon' 此组件接受两属性,名若iconClass及className。...' // 导入 SvgIcon 组件 import SvgIcon from '@/components/SvgIcon' // 将 SvgIcon 组件注册为全局组件 Vue.component('.../svg' 目录下以 '.svg' 结尾文件 const req = require.context('.

24310

自动化测试 Jest 使用总结基础篇

使用 jest 原因 随着前端发展,web交互越来越复杂,自动化测试是非常有必要融入到开发流程中,而目前界内普遍通用且比较火就是有 facebook开发 Jest 这套工具。...他可以创建测试用例,执行测试,自身还有驱动和mock,且用起来也是很方便,正如 jest 官网这样描述 jestJest is a delightful JavaScript Testing Framework...同时, jest 也支持做不匹配校验,也就是反向校验。下面就是一些不同匹配器。 简单类型校验; 使用 tobe() 匹配器做简单类型校验,校验结果是否正确。...jest 做回调操作测试需要注意,函数回掉情况。...钩子函数使用 钩子执行 再执行测试文件时候,如果有需要对函数进行特殊处理可以在执行前和执行后使用钩子函数,beforeEach and afterEach。

2.7K111

使用Jest测试包含setTimeout调用函数踩坑记录

前两天给一个包含setTimeout调用函数写单元测试,在使用fake timer时候遇到了问题,记录一下。...在启用fake timer时候,setTimeout、setInterval都会使用Jest提供假实现,他们不会真正阻塞住测试用例。...根据Jest官方文档,调用这个函数后,所有队列中“微任务”都会被立刻执行,这里目的就是保证catch回调能被立刻调用; 使用jest.advanceTimersByTime(6000)代替await...咳咳……也就是说,Promise所使用微任务队列又是另外一个微任务队列,并且不归Jest控制! 因此,问题也明确了:runAllTicks什么作用也没有发挥,我们回到了最初遇到问题。...注意我们此时使用是fake timer,因此是无法使用await delay(0)这个方案,因此这会导致我们测试用例在等待setTimeout被回调,而fake timersetTimeout又在等待

6.6K60

Vue项目中优雅使用icon

svg文件有默认url-loader 处理,我们要使用svg 图标需单独进行配置 下载一个插件svg-sprite-loader来单独处理我们svg图标,它是一个webpack loader,支持将多个...svg打包成svg sprites npm下载 npm install svg-sprite-loader -D yarn下载 yarn add svg-sprite-loader -D 我们要怎么使用它呢...loader对我们icons/目录下svg文件处理,然后新增了一个规则让svg-sprite-loader处理我们icons/文件夹下svg文件,最后我们设置了icon-加上经过处理svg文件名作为...不,我们还可以再简化,因为每次使用都得svg标签包着use太麻烦了,写着也不太雅观,我们继续简化,一定要看起来使用起来都十分优雅 再进阶-SvgIcon组件 在components/目录下新建SvgIcon...最后就是我们使用了,在main.js文件引入icons/index.js import "@/icons/index.js"; 再来看看我们使用图标的方法,组件中: <svg-icon

2.1K20

VUE项目iconfont自定义SVG(非SVG文件)-_PUSDN

简述 VUE项目iconfont自定义SVG,在线或者离线下载阿里巴巴icon font.js;并非SVG文件; 前情提示 VUE2; 在线或者离线下载阿里巴巴icon font.js;并非SVG...文件; 文中使用icon仅用于演示; 一说 同步更新最新版、完整版请移步PUSDN Powered By PUSDN - 平行宇宙软件开发者网www.pusdn.com ,转载请标明出处!...: 如下图,可以看到svg彩色,而其他还是黑白,还有几个圆圈没有展现出来 ​ symbol介绍 这是一种全新使用方式,应该说这才是未来主流,也是平台目前推荐用法。...vertical-align: -0.15em; fill: currentColor; overflow: hidden; outline: 0; } ​ 其他组件使用...文件,需要,此处不做SVG介绍 npm install --save-dev svg-sprite-loader 或者 yarn add svg-sprite-loader -D 或者查看ant design

26330
领券