React & Jest: Cannot find module from test file

半腔热情 提交于 2021-02-18 10:12:30

问题


Setting up a Jest test ('App-test.js') for a Redux action ('App.js') in a directory app/__tests__:

Here's the header of App.js:

jest.unmock('../../modules/actions/App.js')

import React from 'react'
import ReactDOM from 'react-dom'
import TestUtils from 'react-addons-test-utils'

import * as App from '../../modules/actions/App.js'

In app/ there is a module config.js. This is being imported where it is needed.

The problem is, when I run my Jest tests, such as App-test.js, it is looking for config and not finding it:

 FAIL  __tests__/actions/App-test.js
Runtime Error
Error: Cannot find module 'config' from 'User.js'

And User.js is importing config like so: import config from 'config'

User.js is another action being used App.js.

Any ideas?


回答1:


You should specify the module location, otherwise Node.js will try to guess the location for you, like:

node_modules/config.js
node_modules/config/index.js
node_modules/config/package.json

The problem in your code is the assumption that node will look for the file in the desired location, as you can see in the algorithm I provided in the previous lines.

To fix the issue you have to specify the location inside your User.js file, for example, check the hypothetical file organization:

/
/config.js
/app
/app/User.js

Then, you'd import inside User.js:

import config from '../config.js'

The file config.js is relative to User.js, located in the parent directory.



来源:https://stackoverflow.com/questions/37307799/react-jest-cannot-find-module-from-test-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!