2012-11-11 66 views
1

我修改了测试使用以前的考题,我就不能得到100%的覆盖率即将举行的这一周,我的计划是:Java软件测试

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; 
} 

} 

我使用下面的测试情况:

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); 


} 

} 

但是我错过了3个分支中的8个,其他的如果我的代码行!

+0

在哪里'假,TRUE'情况? –

+0

add“int i = t.computeInsurance(false,true);”并看看你得到了什么 – bobah

+0

啊,我应该看到那个!但是,在我添加该行后,仍然缺少8行中的2个分支,如果其中有一行代码! – user1816464

回答

3

你为什么不测试:

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

这样你就应该涵盖所有。

可以简化你这样的代码:

if (SportsEquipment && MusicEquipment) 
    insurance = 20; 
else if (SportsEquipment != MusicEquipment) 
    insurance = 10; 
else 
    insurance= 5; 
+0

啊,我应该看到那个!但是,在我添加该行后,仍然缺少8行中的2个分支,如果其中有一行代码! – user1816464

+0

尝试更新您的如果树像乔普确实显示在下面。我把它复制到我的答案是完整的。 – Frank

0

1出4(= 2 2)你缺少(不2³),t.computeInsurance(false, true);

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;