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

无法使用jest测试从node_modules内部导入SCSS的Svelte组件

问题描述: 无法使用jest测试从node_modules内部导入SCSS的Svelte组件。

回答: 在使用jest测试从node_modules内部导入SCSS的Svelte组件时,可能会遇到一些问题。这是因为jest默认只能处理JavaScript文件,而无法处理SCSS文件。为了解决这个问题,我们可以使用一些工具和配置来使jest能够处理SCSS文件。

首先,我们需要安装一些必要的依赖项。可以使用npm或者yarn来安装这些依赖项。在项目根目录下运行以下命令:

代码语言:txt
复制
npm install --save-dev identity-obj-proxy jest-transform-svelte sass svelte-preprocess

安装完成后,我们需要在jest配置文件中进行一些配置。在项目根目录下创建一个名为jest.config.js的文件,并添加以下内容:

代码语言:txt
复制
module.exports = {
  transform: {
    '^.+\\.js$': 'babel-jest',
    '^.+\\.svelte$': 'jest-transform-svelte',
    '^.+\\.scss$': 'jest-transform-scss',
  },
  moduleNameMapper: {
    '\\.(css|less|sass|scss)$': 'identity-obj-proxy',
  },
  setupFilesAfterEnv: ['@testing-library/jest-dom/extend-expect'],
};

上述配置中,我们使用了jest-transform-svelte和jest-transform-scss来处理Svelte组件和SCSS文件的转换。moduleNameMapper配置用于将CSS相关的导入语句映射为一个mock对象,以避免在测试中出现错误。

接下来,我们需要在测试文件中进行一些调整。假设我们有一个名为Button.svelte的Svelte组件,并且该组件使用了从node_modules中导入的SCSS文件。在测试文件中,我们需要使用svelte-preprocess来处理SCSS文件的导入。以下是一个示例的测试文件:

代码语言:txt
复制
import { render } from '@testing-library/svelte';
import Button from 'your-svelte-component-library/Button.svelte';

test('renders button', () => {
  const { getByText } = render(Button, { props: { text: 'Click me' } });
  const button = getByText('Click me');
  expect(button).toBeInTheDocument();
});

在上述示例中,我们使用了render函数从Svelte组件库中导入Button组件,并进行渲染和断言。

总结: 通过以上配置和调整,我们可以在jest中成功测试从node_modules内部导入SCSS的Svelte组件。这样,我们就能够全面测试Svelte组件的功能和样式,确保其在各种场景下的正确性。

腾讯云相关产品推荐: 腾讯云提供了一系列云计算产品,可以帮助开发者构建和部署各种应用。以下是一些与云计算相关的腾讯云产品:

  1. 云服务器(CVM):提供可扩展的虚拟服务器,用于运行各种应用程序。 产品介绍链接:云服务器(CVM)
  2. 云数据库 MySQL 版(CDB):提供高性能、可扩展的关系型数据库服务,适用于各种应用场景。 产品介绍链接:云数据库 MySQL 版(CDB)
  3. 云存储(COS):提供安全可靠的对象存储服务,用于存储和访问各种类型的数据。 产品介绍链接:云存储(COS)

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行。

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

相关·内容

Unit Testing

#应该测试程序 其实每一个项目都应该使用单元测试,单元测试可以很好保证你代码不会欺骗你。 世界上没有任何一个完美的程序,也更不会有完美的人可以写出没有任何问题代码。...#配置单元测试 #安装 Jest 我们使用 yarn 来安装 Jest 包 yarn add -D jest 在 package.json 文件中加入测试命令 { "scripts": {...运行 Jest 测试代码时出现 Cannot use import statement outside a module 不能在其他模块使用 import 语句 出现这个问题主要原因在于 Webpack...未忽略 node_modules 文件夹下代码 一般来说这个是默认Jest 默认会忽略 node_modules 文件夹下文件和代码 无法识别 css scss 等样式文件 在我们组件当中大部分都会有...css 或者 scss 等文件,但是 Jest无法处理这类文件,此时需要将此类样式文件都 Mock 掉 { moduleNameMapper: { '\\.

1.3K20
  • 干货 | 携程租车React Native单元测试实践

    (css|less|scss)$": "/__mocks__/stylesMock.js" }, transform: { //转译配置,RN项目配置如下,普通React项目可以使用...快照将在测试文件的当前文件路径自动生成snapshots文件夹中保存。当主动修改造成ui变化时,使用jest -u来更新快照。...这对于隔离组件进行纯单元测试很有用,效率高,可以进行模拟交互,并且Enzyme 3开始也可以访问组件生命周期,所以一般组件测试用shallow即可。 mount:完整渲染,包括其子组件。..._onClear).toBeCalled();//测试组件实例上方法是否被调用 九、Redux测试使用React或者React Native时通常会使用Redux进行状态管理,需要mock store...在携程租车前端单元测试实践中,我们总结出几个要点: 将待测试组件当成黑盒,不用考虑内部逻辑实现; UI改动频繁,优先保证公用组件,工具函数,核心代码单元测试; 模拟数据尽量真实; 多考虑边界条件情况

    6.1K30

    手摸手教你封装跨项目复用 Vue 组件

    npm 在某一个具体项目内,对组件只需引用其源码即可; 对于跨项目的通用组件库,一种方法是在各项目内部维护一个指向组件库源码子模块(git subtree 或 submodule),但这种方法维护比较麻烦...当然如果自己组件多少还是关乎业务逻辑、对外部项目其实也没那么通用,而公司内部又维护有 npm 镜像,那么选择将其发布到这个内部环境中也是可以。...代码,目的也是和 jest 复用 json 组件解决源码中可能会直接导入 json 文件情况 external 配置意思是:package.json 中 dependencies 包含依赖,都不被打包到组件中...(css|less|scss)$': '/__mocks__/emptyMock.js' }, snapshotSerializers: [ 'jest-serializer-vue..."test": "jest" }, "pre-commit": [ "test" ], 这里用 pre-commit 包实现了提交前先进行单元测试钩子功能。

    2.7K10

    sveltejs结合ol实现跨框架组件复用

    概述 velte 是构建 Web 应用程序一种新方法,核心思想在于通过静态编译减少框架运行时代码量,它可以像React和VUE一样开发,但却没有虚拟DOM,可以将代码编译为体积小、不依赖于框架JS...使用Svelte开发无框架依赖Web Components,可以在各个框架间复用。同时,Svelte开发方式也不像写pure js那样繁琐。本文将结合ol实现跨框架组件复用。 实现 1....修改后文件内容为: { "name": "svelte-component", "svelte": "src/index.js", "module.prod": "dist/index.min.mjs...组件编写 ComponentMap.svelte文件内容如下: <div bind:this={mapDom} class="map"...{ dispatchEvent("zoomend", map.getZoom()); }); }); <style lang="<em>scss</em>

    81330

    你不知道 Vue 单元测试(6000字实战单元测试

    不过你需要一个能够将单文件组件导入测试预处理器。我们已经创建了 vue-jest 预处理器来处理最常见单文件组件特性,但仍不是 vue-loader 100% 功能。...列表序号1开始递增 当待完成列表为空时候,不显示待完成字样 当已完成列表为空时候,不显示已完成字样 先把上面的页面写好 写页面之前先把创建项目的时候生成 HelloWorld.vue 和对应测试文件...: shallowMount 将会创建一个包含被挂载和渲染 Vue 组件 Wrapper,只存根当前组件,不包含子组件。...:value="item" 绑定 value, 所以 setValue 无法触发更新;只能通过 trigger 来触发更新 toDoList 值。...● JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件● 你不知道 Npm(Node.js 进阶必备好文)● 用动画和实战打开 React Hooks(

    11.3K41

    React单元测试Jest + Enzyme(一)

    但如果涉及到以下几个方面,你就要考虑是否有必要引入单测了: 业务比较复杂,前端参与的人员超过3人 公司非常注重代码质量,想尽一切办法杜绝线上出bug 你是跨项目组件提供方 你在做一个开源项目 React...Jest是Facebook开发一个测试框架,它集成了测试执行器、断言库、spy、mock、snapshot和测试覆盖率报告等功能。...React项目本身也是使用Jest进行单测,因此它们俩契合度相当高。 Enzyme是由airbnb开发React单测工具。...'; 对于css和scss文件,我们使用identity-obj-proxy来mock,它会在引用到class地方直接返回class类名: npm install --save-dev identity-obj-proxy...在下一篇文章中,我将会详细介绍如何使用Jest来mock方法和数据,敬请期待。

    1.5K20

    当前端基建任务落到你身上,该如何推动协作?

    言归正传,当你进入一个新团队,前端 0 开始,怎样DevOps角度去提高团队效能呢? ? 一套简易DevOps流程包含了协作、构建、测试、部署、运行。...项目结构与技术栈上下横跳,明明是同一 UI 风格,基础组件没法复用,全靠复制粘贴。 代码没注释,项目没文档,新人难以接手,旧项目无法维护。 1....{css,scss}'", "lint:fix": "node_modules/.bin/eslint '**/*....在项目中安装StoryBook(多项目时另起) 按官方文档标准,创建stories,并设定参数(同时也建议先写Jest测试脚本),写上必要注释。 为不同组件配置StoryBook控件,最后部署。...否则,测试如果不知道的话,会认为是 bug。 通过自测和编写Jest单元测试,将代码意外bug降到合理程度。 和测试一起吐槽后端接口规范(滑稽)。

    1.2K10

    2022年3月最新Eslint + Prettier + Husky + Stylelint + Jest + CICD 超详细前端单元测试&规范工程化工作流

    ,需要额外配置 pnpm i -D postcss postcss-scss 2.2 git规范 git规范对于团队开发是非常有利,在版本出现问题时可以清晰定位; 2.2.0 husky配置 做...run build && npm test" 3 单元测试「可选」 单元测试中最出名的当属Jest 我这里使用则是Jest和ReactTestingLibrary 3.1 Jest && ReactTestingLibrary...3.1.1 初始化与安装 项目中使用了ts,需要为Jest额外准备babel和typescript环境包 pnpm i jest -D pnpm i -D babel-jest @babel/core...(css|sass|scss)$", ], }; 当然如果使用Next框架,这样写就行: const nextJest = require('next/jest') const createJestConfig...嗯...图方便,并且由于前端这边只有静态界面,我这里没有使用服务器。而是通过腾讯静态托管(类似CDN)完成一键部署测试环境。

    1.9K10

    当前端基建任务落到你身上,该如何推动协作?

    言归正传,当你进入一个新团队,前端 0 开始,怎样DevOps角度去提高团队效能呢? ? 一套简易DevOps流程包含了协作、构建、测试、部署、运行。...项目结构与技术栈上下横跳,明明是同一 UI 风格,基础组件没法复用,全靠复制粘贴。 代码没注释,项目没文档,新人难以接手,旧项目无法维护。 1....{css,scss}'", "lint:fix": "node_modules/.bin/eslint '**/*....在项目中安装StoryBook(多项目时另起) 按官方文档标准,创建stories,并设定参数(同时也建议先写Jest测试脚本),写上必要注释。 为不同组件配置StoryBook控件,最后部署。...否则,测试如果不知道的话,会认为是 bug。 通过自测和编写Jest单元测试,将代码意外bug降到合理程度。 和测试一起吐槽后端接口规范(滑稽)。

    84020

    Vue3组件库工程化实战 --Element3

    Element3组件库工程化实战 随着对前端功能和性能不断提高,前端早就不是一段内嵌于页面的一段JS代码了。已经进化为一个系统复杂工程了。 下面我就结合element3组件搭建经验。...组件是对于UI层面的拆分,每一个组件需要包括对应CSS、图片、JS逻辑、视图模板等并且能完成一个独立功能。...测试 报告分析 登录TravicCI网站 登录https://www.travis-ci.org/网站 使用github账号登录系统 配置.travis.yml 运行自动化测试框架 language:...相反,我们将使用像 Babel 这样转换器将 JSX 转换为常规 JavaScript。基本上,JSX 允许我们在 JavaScript 中使用类似 HTML 语法。...相比与组件组合,粒度更细 使用 js 可配置每项要渲染 dom,更加动态可配置化 import babel from "@rollup/plugin-babel"; # plugin babel()

    1.3K20

    前端反卷计划-组件库-04-Button组件开发

    今天开始分享如何0搭建UI组件库。这也是前端反卷计划中一项。在接下来日子,我会持续分享前端反卷计划中每个知识点。以下是前端反卷计划内容:目前这些内容持续更新到了我 学习文档 中。...比如上面代码中@include button-size 函数,这个是scss一个特性,可以官网上看下介绍。...mixin编写上面的函数新建 src/styles/_mixin.scss,编写如下代码:这里解释一下:相当于在button-size中传了4个参数,使用这4个参数来定义样式属性,使用时候即可传入对应样式变量即可.../增加dom操作类型断言npm install @testing-library/jest-dom --save-devcreate-react-app已经帮我们导入了src/setupTests.ts...:4.5.4 测试4:测试按钮disabled属性const disabledProps: ButtonProps = { disabled: true, onClick: jest.fn

    30410

    用 vite 2 平滑升级 vue 2 + webpack 项目实战

    /all', replacement: 'node_modules/@foo/src/styles/mixins/_all.scss' } ] }, 复制代码...以上最后两项配置属于之前引用错误路径,vite 无法跳过,并将引起打包失败;需要修正引用或在此特殊处理 build 迁移 之前 webpack 中配置: context: path.resolve...' 这样特殊引用,不符合 vite 内部保留策略,会被删除原 标签并转换成 js import,这将造成页面无法正常访问 结合自定义插件实现打包过程中 hack 和打包结束后恢复...,应尽量避免 new Set() 如果使用了 Map/Set 等 ES6 类型且没有使用 polyfill,应该注意其行为 比如 Set 值可能在 webpack/babel 转写中会自动变为数组...对于需要兼容 IE 11 等特殊情况,需要充分测试后,考虑用 legecy 模式迁移 需要注意生产环境rollup打包与开发环境代码会不一致,最好用 preview 验证

    1.5K70

    那些年错过React组件单元测试(上)

    因此单元测试概念在前端领域应运而生,通过编写单元测试可以确保得到预期结果,提高代码可读性,如果依赖组件有修改,受影响组件也能在测试中及时发现错误。 测试类型又有哪些呢?.../", "\\.pnp\\.[^\\/]+$"], } 这里只是列举了常用配置项: automock: 告诉 Jest 所有的模块都自动 mock 导入. clearMocks: 在每个测试前自动清理...实际上,jest.spyOn()是jest.fn()语法糖,它创建了一个和被spy函数具有相同内部代码mock函数。 Snapshot 快照测试 所谓snapshot,即快照也。...() }) }) 当使用toMatchSnapshot时候,Jest 将会渲染组件并创建其快照文件。...总结 到这里,关于前端单元测试一些基础背景和Jest基础api就介绍完了,在下一篇文章中,我会结合项目中一个React组件来讲解如何做组件单元测试。 ?

    5K20

    2020全球JS报告调查结果,请查收

    外圈大小对应于了解某项功能用户总数,而内圈则代表实际使用过该功能用户。 技术现状 2016年 - 2020年 趋势图 每条线2016年到2020年(粗部为2020)。...其他工具 前端框架 正如开头所说,svelte 出现真的是对前端行业冲击,原以为三大框架(React、Vue.js、Angular)包揽所有的时候,它出现了,一度成为了第四名(使用量),但是兴趣度和满意度来看...其他工具 测试框架 Jest和 Mocha 在使用量上依旧是统治地位,但是新增了 Testing Libray 很强劲。 以下是满意度排行。 什么是 Testing Library ?...用于 DOM 和 UI 组件测试一系列工具,主要 API 包含 DOM 查询,更可以和其他测试工具(jest、cypress)配合,用于更多场景(react、vue、svelte)。...而它是 React 官方推荐。 我们推荐使用 React Testing Library,它使得针对组件编写测试用例就像终端用户在使用它一样方便。

    1.1K00
    领券