使用浅表时,玩笑不会覆盖默认道具

时间:2019-04-20 21:20:21

标签: reactjs jestjs enzyme enzyme-to-snapshot

我目前正在尝试使用玩笑/酶来测试我的组件,由于某种原因,当我尝试渲染我的组件时,并没有使用我传递给我的参数的参数覆盖默认的props值。

这就是我的组件中的内容

我在DataGridComponent组件中有这个

  componentDidMount() {
    this.props.getMyData(this.props)
      .then(() => {
        this.setState({
          gridSheet: getTabData(metaDataStaging, this.state.objKey),
          gridCol: modelHelper.createNewObj(this.props.myData.data.id, someOtherVal),
        });
      });
  }

在我的考试中,我有:

 let wrapper;
  const props = {
    getGridData: mockgetGridData,
    metaDataStaging: null,
    myData: null,
  };

  beforeEach(() => {
    wrapper = shallow(<DataGridComponent {...props} />);
  });

  it('should render my data tabs on my DataGridComponent', () => {

   const overrideProps = {
     …props,
      myData: {
        data: {
          idName: 'my name',
          idDescription: 'test',
          id: 1234,
          type: ‘RE45’
        },
      },

} 
  const wrapperTwo = shallow(<DataGridComponent {...overrideProps} />);
  expect(wrapperTwo).toMatchSnapshot();
  });

当我对此进行测试时,我会失败

"TypeError: Cannot read property 'data' of null" 

并指向:

"this.props.myData.data.id" 

在我的DataGridComponent中。有人可以帮忙吗?

0 个答案:

没有答案