玩笑无法从同一文件夹中的文件中找到模块

时间:2019-07-14 16:34:31

标签: reactjs jestjs

我正在尝试使用Jest建立一个非常基本的测试,该测试测试App.js是否正确呈现。我收到错误

Cannot find module './App' from 'App.test.js'

However, Jest was able to find:
        './App.js'
        './App.test.js'

但是,如果我尝试写import App from "./App.js";而不是... from "./App";,我会得到

    Cannot find module './App.js' from 'App.test.js'

如何使Jest正确找到模块?

该项目是使用Create React App设置的,并且App.jsApp.test.js位于同一文件夹(src/components)中。

App.js

import React, { Component } from "react";

class App extends Component {
  render() {
    return <div />;
  }
}

export default App;

App.test.js

import React from "react";
import { shallow } from "enzyme";
import App from "./App.js";

const app = shallow(<App />);

it("renders correctly", () => {
  expect(app).toMatchSnapshot();
});

1 个答案:

答案 0 :(得分:2)

我认为Jest需要在呈现组件之前进行自我设置(因此请不要在测试用例之外调用<App />

it("renders correctly", () => {
  const app = shallow(<App />);
  expect(app).toMatchSnapshot();
});


但是,如果问题出在import行上,假设您使用的是最新版本,并且您自己没有通过任何CLI options,我建议您替换{{1}的全部内容}:

App.test.js

并在https://jestjs.io/docs/en/configuration中搜索列出的环境变量,以查看是否有任何可能影响Jest。