我已經在我的JUnit測試用例上運行了EclEmma,並且在某些情況下達到了100%。但是,在覆蓋率爲82%或95%的代碼中,我的代碼旁邊有一條消息,指出「2個分支中的1個錯過了」,我似乎無法解決此問題。JUnit測試:如何測試語句不丟失分支?
找過我的課之後,我注意到,此消息只是我旁邊的if語句出現,這是什麼讓我的測試中被100%覆蓋。
我猜我問,如果有人知道如何在JUnit測試if語句,這樣既沒有分支被遺漏。
這是我想測試代碼:
private double height;
public void setHeight(double height){
if(height <=0){
this.height = 0;
}
else{
this.height = height;
}
}//method close
(我使用JUnit 4)
調用'setHeight'了負數,正數,並可能與0真的參數,究竟你問? – Seelenvirtuose
因此,使用<= 0的高度進行測試,並使用高度> 0進行測試。這將覆蓋兩個分支。 –
btw:在Java(和其他語言)中比較double和==是不安全的。 http://stackoverflow.com/questions/25160375/comparing-double-values-for-equality-in-java – Rainer