如何在 Jest 测试中处理 .gql 文件导入
How to handle .gql file imports in Jest tests
我正在尝试测试导入 .gql
文件的组件。当我尝试在 Jest 文件中构建组件时,收到此错误:
( object. anonymous function(module exports require __dirname __filename global jest) {
query getUser {
ˆˆˆˆˆˆˆ
<script>
import GET_USER from 'PATH';
ˆ
有没有人知道如何忽略导入?因为我不需要测试 GraphQL 调用。
如果您使用 webpack 并利用 graphql-tag
附带的加载器,则可以直接导入 GraphQL 文档(通常具有 .gql
扩展名)。 Jest 不能与开箱即用的 webpack 一起使用,需要进行配置以处理任何资产文件的导入,如样式表、图像等。概述了此过程 in the docs.
根据 graphql-tag
文档:
Testing environments that don't support Webpack require additional configuration. For Jest use jest-transform-graphql.
因此您可以将 jest-transform-graphql 与您可能已经在使用的 babel-jest
插件一起使用:
"jest": {
"transform": {
"\.(gql|graphql)$": "jest-transform-graphql",
".*": "babel-jest"
}
}
通过添加文档中所示的 moduleNameMapper
配置选项在技术上可以模拟文件,但是,这样做可能会破坏您的组件。
我正在尝试测试导入 .gql
文件的组件。当我尝试在 Jest 文件中构建组件时,收到此错误:
( object. anonymous function(module exports require __dirname __filename global jest) {
query getUser {
ˆˆˆˆˆˆˆ
<script>
import GET_USER from 'PATH';
ˆ
有没有人知道如何忽略导入?因为我不需要测试 GraphQL 调用。
如果您使用 webpack 并利用 graphql-tag
附带的加载器,则可以直接导入 GraphQL 文档(通常具有 .gql
扩展名)。 Jest 不能与开箱即用的 webpack 一起使用,需要进行配置以处理任何资产文件的导入,如样式表、图像等。概述了此过程 in the docs.
根据 graphql-tag
文档:
Testing environments that don't support Webpack require additional configuration. For Jest use jest-transform-graphql.
因此您可以将 jest-transform-graphql 与您可能已经在使用的 babel-jest
插件一起使用:
"jest": {
"transform": {
"\.(gql|graphql)$": "jest-transform-graphql",
".*": "babel-jest"
}
}
通过添加文档中所示的 moduleNameMapper
配置选项在技术上可以模拟文件,但是,这样做可能会破坏您的组件。