如果在反应单元测试中的 return 语句中未采用路径

If path not taken in return statement in react unit test

我收到的消息是“如果未采用路径”,因为我根据 id 未定义的情况应用了保存和更新操作的条件。 请指导我如何编写测试用例,其中 id 未定义或未定义并且还包含 return 语句。

我在单击按钮上同时应用更新和添加数据操作,因此如果 id 为 null 或未定义,我应用条件而不是执行 saveCampaignGroup() 保存数据操作执行。如果 id 不为 null 或不为 undefined 而不是 else 条件 updateCampaignGroup(id);动作执行。

{(() => {
      if (id === undefined || id === '') {
        return (
          <Wizard.Step
            title="Review and save"
            isValid={true}
            actions={{
              primary: {
                label: 'Complete and save',
                onClick: () => {
                  saveCampaignGroup();
                },
              },
            }}>
            <PreviewDetails
              details={inputState}
              campaigns={selectedCampaigns}
              NoCampaignExist={NoCampaignExist}
            />
          </Wizard.Step>
        );
      } else {
        return (
          <Wizard.Step
            title="Review and save"
            isValid={true}
            actions={{
              primary: {
                label: 'Complete and save',
                onClick: () => {
                  updateCampaignGroup(id);
                },
              },
            }}>
            <PreviewDetails
              details={inputState}
              campaigns={selectedCampaigns}
              NoCampaignExist={NoCampaignExist}
            />
          </Wizard.Step>
        );
      }
    })()}

in this image you can see by default else is covered but id via test case we set id=2

所以你必须申请:

component.find('#your_button_id').at(0).simulate('click');

对于两种测试场景:一种用于具有有效 id 道具的组件,另一种用于没有它的组件。