首页 > 解决方案 > React/Jest 错误:无法识别导入的函数

问题描述

我正在尝试设置 Jest 以在我的 React 应用程序中进行测试。它适用于一些基本功能,但是当我尝试从节点模块导入功能并使用它时,它会引发类型错误:TypeError: (0 , _reactCssThemr.themr) is not a function

为了缩小问题的范围,我删除了大部分配置,只是在测试一个虚拟组件,但仍然出现错误。我似乎无法弄清楚我在这里有什么问题,我认为它与配置有关。似乎它只是没有得到节点模块。

基础测试:

import JestTest from 'components/JestTest.jsx';
import TestRenderer from 'react-test-renderer';

describe('CompsCards', () => {
  it('renders', () => {
    const e = TestRenderer.create(<JestTest />).toJSON();
    expect(e).toMatchSnapshot();
  });
});

JestText.jsx:

import theme from 'css-modules/JestTest.css';
import { themr } from 'react-css-themr';

export class JestTest extends React.Component {
  render () {
    const {theme} = this.props;

    return (
      <div className={theme.JestTest}>Why no workey?</div>
    );
  }
}

const ThemedJestTest = themr('JestTest', theme)(JestTest);

export default ThemedJestTest;

jest.config.js

module.exports = {
  transform: {
    '^.+.jsx?$': 'babel-jest'
  },
  verbose: true,
  setupFiles: ['./jest-setup.js'],
  moduleDirectories: ['node_modules'],
  moduleFileExtensions: [
    'js',
    'jsx',
    'css'
  ],
  moduleNameMapper: {
    '^components/(.+)$': '<rootDir>/src/client/components/$1',
    '^css-modules/(.+)$': 'identity-obj-proxy',

    '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/__mocks__/fileMock.js',
    '\\.(css|scss)$': 'identity-obj-proxy'
   }
 };

jest-setup.jsx

require.requireActual('babel-polyfill');

标签: reactjsjestjsbabel-jest

解决方案


推荐阅读