如何覆盖Jest中单选按钮的代码覆盖率?

时间:2020-11-07 11:43:04

标签: reactjs jestjs enzyme

嗨,我已经编写了单选按钮的单元测试用例,并根据条件试图显示选中了哪个单选按钮。

这是我的组件代码-

                        <RadioButton
                            id='data'
                            isChecked={myButton === 'data' ? true : false}
                            onChange={(event: React.ChangeEvent<HTMLInputElement>): void =>
                                onChangeRadio(event)
                            }
                        />
                        <RadioButton
                            id='data1'
                            isChecked={myButton=== 'data1' ? true : false}
                            onChange={(event: React.ChangeEvent<HTMLInputElement>): void =>
                                onChangehRadio(event)
                            }
                        />

这就是我在单元测试用例中所做的-

    let myButton;
    it('should call onChange handler when radio button value changed', () => {
        wrapper
            .find(RadioButton)
            .first()
            .props()
            .onChange('data', {target:{id:'data' , checked: myButton === 'data' ? true : false} });
        expect(mockOnChangeRadio).toHaveBeenCalled();
    });

    it('should call onChange handler when radion button value changed', () => {
        wrapper
            .find(RadioButton)
            .last()
            .props()
            .onChange('data1', {target:{id:'data1' , checked: myButton==='data1' ? true : false} });
        expect(mockOnChangeRadio).toHaveBeenCalled();
    });

正在运行的测试用例工作正常。甚至功能也包括在内,但不包括错误条件的分支。在代码覆盖率文件中的false上显示为黄色。对于单选按钮isChecked={myButton === 'data' ? true : false}isChecked={myButton === 'data1' ? true : false}

,这是一条错误行

0 个答案:

没有答案