这是我的测试文件
// /imports/components/main.test.js
import React from 'react'
import { shallow, mount } from 'enzyme'
import Main from './main'
import TextInput from "/imports/ui/textInput"
...
并且main.js文件有
// /imports/components/main.js
import { action1 } from "/imports/actions/myAction"
但是当我运行测试时,它会抛出一个错误,内容为:
Cannot find module '/imports/actions/myAction' from 'main.js'
如果我注释掉 import './main'
, 用同样的方式导入 TextInput 也会发生相同的事情。我在导入 node_modules 中的模块方面没有问题。
我该如何告诉 Jest 或 webpack 从项目目录的绝对路径导入组件(即 import Foo from /imports/...
)?
import TextInput from "../ui/textInput"
,并且在import { action1 } from "../actions/myAction"
中导入。如果你想使用绝对路径导入,则必须在 webpack.config 中进行别名设置,然后像这样导入:import { action1 } from "imports/actions/myAction"
。 - Vikramaditya../actions/myAction
是从 main.js 中导入的,而不是测试文件,并且在组件上运行得非常好。我不需要在测试文件中导入它。在测试文件中,我只需要导入 main.js 组件和用于测试浅渲染的 textInput。如果有什么让您感到困惑,我很抱歉。 - spondbob