如何测试子组件的子项

时间:2018-04-16 12:56:22

标签: javascript reactjs unit-testing enzyme

我正在尝试测试我正在测试的根组件内的子组件的第三个子组件,所以情况就是这样:

  <Modal>
    <FlexContainer fluid>
      <FlexRow>
        <FlexColumn>
          <MainButton
            mini
            disabled={disableButtons}
          >
          </MainButton>
        </FlexColumn>
        <FlexColumn>
          <Button
            mini
            htmlType="button"
            onClick={this.addNewPeriod}
            disabled={disableButtons}
          >
          </Button>
        </FlexColumn>
      </FlexRow>
    </FlexContainer>
  </Modal>

如果MainButton Button disabled disableButtons true,我想测试diveconst wrapper = shallowWithIntl(<Modal disableButtons />); const flexContainer = wrapper.find(FlexContainer); const flexRow = flexContainer.dive().find(FlexRow); const flexColumn = flexRow.dive().find(FlexColumn); const button= flexColumn.dive().find(Hovedknapp); expect(button.prop('disabled')).is.equal(true); 组件。我尝试使用ddiagemv方法执行此操作,如下所示:

ddiagemv

但是,我收到一个错误:

  

错误:方法“潜水”仅适用于在单个节点上运行。 2发现   代替。

我该如何测试?

1 个答案:

答案 0 :(得分:0)

尝试

const flexColumn = flexRow.dive().find(FlexColumn).first();

或者,如果您希望在最后<FlexColumn>

中测试按钮
const flexColumn = flexRow.dive().find(FlexColumn).last();