首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java软件测试

Java软件测试
EN

Stack Overflow用户
提问于 2012-11-12 02:31:53
回答 2查看 218关注 0票数 1

我正在为本周即将到来的考试复习,使用以前的试题,我只是不能得到100%的覆盖率,我的程序是:

代码语言:javascript
复制
public int computeInsurance(boolean SportsEquipment, boolean MusicEquipment)
{
int insurance;
if(SportsEquipment == true && MusicEquipment==true)
insurance = 20;
else if((SportsEquipment == true && MusicEquipment == false)||(SportsEquipment == false        && MusicEquipment == true))
        insurance = 10;
    else
        insurance= 5;

    return insurance;
}

}

我正在使用以下测试用例:

代码语言:javascript
复制
public class Lab5CarTest {

@Test
public void testComputeInsurance() {
    Lab5Car t = new Lab5Car();

    int result = t.computeInsurance(true, true);
    assertEquals(20,result);

    int i = t.computeInsurance(true,false);
    assertEquals(10,i);

    int u = t.computeInsurance(false,false);
    assertEquals(5,u);


}

}

但是我在代码的else if行中缺少了8个分支中的3个!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-12 02:34:34

你为什么不测试一下:

代码语言:javascript
复制
int ip = t.computeInsurance(false,true);
assertEquals(10,ip);

像这样,你应该涵盖所有的内容。

您可以像这样简化代码:

代码语言:javascript
复制
if (SportsEquipment && MusicEquipment)
    insurance = 20;
else if (SportsEquipment != MusicEquipment)
    insurance = 10;
else
    insurance= 5;
票数 3
EN

Stack Overflow用户

发布于 2012-11-12 02:43:43

1/4 (=2²)您缺少(不是2³),t.computeInsurance(false, true);

代码语言:javascript
复制
S M  I
------
t t 20
t f 10
f t 10
f f  5


if (SportsEquipment  && MusicEquipment)
    insurance = 20;
else if (SportsEquipment != MusicEquipment)
    insurance = 10;
else
    insurance= 5;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13334125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档