测试是否呈现了具有必需PropType的Material-UI withStyles组件?

时间:2020-07-10 02:18:24

标签: reactjs jestjs material-ui

我是单元测试的新手,无法测试具有必需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

有人可以指出正确的方向吗?

1 个答案:

答案 0 :(得分:0)

您应该使用wrapper.dive().find(Paper),因为StaticProfile由withStyles高阶组件包装。

尝试一下:

it('should render a Paper element', () => {
  expect(wrapper.dive().find(Paper)).toHaveLength(1);
})