Jest覆盖 - 在switch语句中的if语句

问题描述 投票:0回答:1

我试图达到100%的测试覆盖率,似乎无法确定为什么这个代码没有被我的测试覆盖

码:

    case "Premier":
        {
            if(usagePercentage !== '100%'){
                return (
                    <div className='messageText__paid'>
                        <p className='messageText__paid__revenueGenerated'>Revenue generated this cycle: ${revenue}</p>
                        <p className='messageText__paid__review'>Love boop? <a href=''>Leave a review</a></p>
                    </div>
                    )
            }
            if(usagePercentage === '100%'){
                return (
                    <div className='messageText__paid__limitCap'>
                        <p>You’ve hit your usage cap for your current plan, contact us</p>
                    </div>
                    )
            }
        }

测试:

let generatedMessage = shallow(generateMessage('Premier', 1756.11, '100%'))

        it('should generate the plan cap warning', () => {
            expect(generatedMessage.hasClass('messageText__paid__limitCap')).toEqual(true)
        })
        let generatedMessage = shallow(generateMessage('Premier', 1756.11, '55%'))

        it('should generate the paid plan message', () => {
            expect(generatedMessage.hasClass('messageText__paid')).toEqual(true)
        })
reactjs jestjs code-coverage
1个回答
1
投票

看起来您还需要在语句中测试第一个分支;如果useagePercentage不是100%,会发生什么。

像这样的东西:

let otherGeneratedMessage = shallow(generateMessage('Premier', 1756.11, '50%'))

    it('should generate revenue cycle message', () => {
        expect(otherGeneratedMessage.hasClass('messageText__paid')).toEqual(true)
    })
© www.soinside.com 2019 - 2024. All rights reserved.