【发布时间】:2020-10-05 23:39:34
【问题描述】:
问题:我想用 jest 测试苗条的组件,但我无法这样做,因为我无法忽略组件内部提到的 scss 样式。有没有办法绕过scss。到目前为止,我的方法如下:-
jest.config.js
module.exports = {
transform: {
'^.+\\.svelte$': 'svelte-jester',
'^.+\\.js$': 'babel-jest',
},
moduleFileExtensions: ['js', 'svelte'],
moduleDirectories: ['node_modules', 'src'],
moduleNameMapper: {
"^.*\\.scss$": "SCSSStub.js"
}
}
babel.config.js
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
}
SCSSStub.js
module.exports = {};
除了这种方法,我尝试了 identity-obj-proxy 以及添加
moduleNameMapper: { '^.+\\.(css|less|scss)$': 'babel-jest',},
到 jest.config.js。他们都没有工作。
【问题讨论】:
-
您对此是否有任何错误,或者它根本不起作用?如果有错误,您能否也分享错误堆栈跟踪?
-
当我按照提到的方式配置 jest 并执行测试时,我会不断收到解析错误,因为测试无法绕过我的 svelte 文件中的 scss。当我从 svelte 文件中删除 scss 时,测试将按预期执行。
标签: javascript css unit-testing jestjs svelte