我是单元测试的新手,无法测试具有必需propTypes的Material-UI withStyles组件是否正在呈现子Material-UI元素。
profile.js
const StaticProfile = (props) => {
const { classes, profile } = props
}
return (
<Paper>
<div>
<MuiLink></MuiLink>
<Typography>
<LocationOn>
<LinkIcon>
<Calendar>
</div>
</Paper>
)
profile.test.js
describe('<StaticProfile />', () => {
let shallow;
let wrapper;
const myProps = {
profile: {},
classes: {}
}
beforeEach(() => {
shallow = createShallow();
wrapper = shallow(<StaticProfile {...myProps} />);
})
it('should render a Paper element', () => {
expect(wrapper.find(Paper).length).toBe(1);
})
})
但是,似乎完全没有在收到此错误的情况下渲染组件。
expect(received).toBe(expected) // Object.is equality
Expected: 1
Received: 0
有人可以指出正确的方向吗?
答案 0 :(得分:0)
您应该使用wrapper.dive().find(Paper)
,因为StaticProfile由withStyles
高阶组件包装。
尝试一下:
it('should render a Paper element', () => {
expect(wrapper.dive().find(Paper)).toHaveLength(1);
})