我正在使用 Jest 和 Enzyme 对我的 React 应用程序进行快照测试。我正在尝试导出未包装在更高阶组件中的组件的可测试版本。
然后我想导出包装的组件,以便我的应用程序可以使用它,以及一个可测试的版本,即我的组件的非包装版本。
这是我的组件:
导航栏.jsx
const NavBar = ({props}) => {(
<div>...</div>
)}
export { NavBar as TestableNavBar };
export default withStyles(styles)(NavBar);
导航栏.test.js
import React from 'react';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
import { TestableNavBar } from './NavBar';
const props = {
...
};
describe('Navbar', () => {
it('should render correctly', () => {
const wrapper = shallow(<TestableNavBar {...props} />);
const tree = toJson(wrapper);
expect(tree).toMatchSnapshot();
});
});
以上生成的快照如下所示:
<div>
<withStyles(AppBar)
className=""
>
<withStyles(Toolbar)
disableGutters={true}
>
<withStyles(IconButton)
aria-label="open drawer"
className=""
color="contrast"
onClick={[Function]}
>
...
</div>
我真的不明白为什么它仍然试图渲染 HOC?