【发布时间】:2023-03-07 09:15:01
【问题描述】:
如何在material-ui/core/styles.js 中模拟withStyles 的实现?
这是测试:
import React from 'react'
import { shallow } from 'enzyme'
import { withStyles } from '@material-ui/core/styles'
import TempComponent from './TempComponent'
jest.mock('@material-ui/core')
it('renders correctly', () => {
const withStylesFake = styles =>
component => (
component
)
withStyles.mockImplementation(withStylesFake)
const wrapper = shallow(<TempComponent />)
expect(wrapper).toMatchSnapshot()
})
代码如下:
import React from 'react'
import { withStyles } from '@material-ui/core/styles'
const TempComponent = () => (
<button>Click Me!</button>
)
export default withStyles({})(TempComponent)
这是错误:
TypeError: _styles.withStyles.mockImplementation is not a function
at Object.<anonymous>.it (src/TempComponent.snapshot.test.js:15:22)
at new Promise (<anonymous>)
at Promise.resolve.then.el (node_modules/p-map/index.js:46:16)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
这可行:
// ./__mocks__/@material-ui/core/styles
export const withStyles = styles => (
component => (
component
)
)
但这不是测试本地的。
【问题讨论】:
标签: reactjs mocking jestjs material-ui