用moduleNameMapper模拟我自己的组件

时间:2019-05-20 13:07:13

标签: reactjs webpack jestjs babel-jest

我正在尝试在玩笑测试中模拟组件。 我创建了一个简单的模拟文件: /app/javascript/src/svgImportMock.js

var React = require('react')

module.exports = function(){
  console.log('I\'m being called');
  return <div />;
}

在我的jest配置文件中,我有:

{
  ...
  "moduleNameMapper": {
    "(InputWithLabel)$": "<rootDir>/app/javascript/src/svgImportMock.js",
    "^react-native$": "react-native-web"
  },
  ...
}

最后,我开玩笑的测试是使用InputWithLabel: app / javascript / src / components / Input / InputWithLabel / index.test.js

import React from 'react'
import { shallow } from 'enzyme'
import InputWithLabel from './index'

describe('<InputWithLabel />', () => {
  it('renders given the required props', () => {
    const component = shallow(<InputWithLabel {...requiredProps} />)
    expect(component).toMatchSnapshot()
  })
})

不幸的是,它正在加载实际的InputWithLabel组件,而不是模拟组件。没有显示console.log。

我正确配置了moduleNameMapper吗?

0 个答案:

没有答案