我正在尝试在我的React应用程序中设置Jest进行测试。它在一些基本函数上工作正常,但是当我尝试从节点模块导入函数并使用它时,它会抛出一个Type错误: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'
}
};
开玩笑-setup.jsx
require.requireActual('babel-polyfill');