javascript - Jest 和 React 导入 SCSS 文件的语法错误

标签 javascript reactjs unit-testing jestjs

我正在使用 Jest 进行测试,我的应用程序正在 Next.js 上运行...我正在尝试在我的 Next 应用程序中测试页面组件,但我收到了以下屏幕截图中显示的错误; “之前”图像是在我尝试实现 solution found on Stackoverflow 之前,“之后”是解决方案实现之后。我仍然卡住了,需要一些友好的帮助!

enter image description here

这也是我当前在 package.json 中的 Jest 配置

"jest": {
  "setupFiles": ["./shim.js", "./setupTests.js"],
  "verbose": true,
  "moduleNameMapper": {
    "^.+\\.(css|scss)$": "./cssStub.js"
  }
}

谢谢!

最佳答案

我正在使用 CSS modules而且我使用“代理”很方便,就好像代码需要样式一样,jest 将返回一个代理,它将返回所需的字段名称而不是值。

例如:

import * as styles from './styles.scss';

console.log(styles.someClassName);
// the proxy in that case will return a string with `someClassName` value.

所有你需要配置的就是安装 npm install --save-dev identity-obj-proxy 并添加

"moduleNameMapper": {
      "\\.(css|scss)$": "identity-obj-proxy",
}

到您在 package.json file 中的 Jest 部分.

编辑

注意根据docs你应该使用 <rootDir> 当您映射到文件时。 "\\.(css|scss)$": "<rootDir>/cssStub.js.js",

关于javascript - Jest 和 React 导入 SCSS 文件的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47243485/

相关文章:

javascript - 使用 lodash 将 javascript 数组转换为对象

ReactJS 无法导入组件

javascript - react : Save multiple similar inputfields in one state

Qt 事件循环和单元测试?

java - 如何使用 Mockito 在另一个 Mock 类中模拟 Spring 消息资源?

javascript - 呈现非常大的虚拟表的问题

javascript - 根据 id 对对象进行分组,并创建对象数组

javascript - angucomplete-alt 从远程 url 获取数据的问题

reactjs - 如何修复导入错误 "Module not found: Can' t 解析 './components'“- 使用命名导出

java - Spring Boot 1.4 单元测试 Hibernate 验证 WebMvcTest