如何覆盖这种方法的所有分支?

时间:2016-06-24 06:43:53

标签: java testing junit

我无法理解如何完全测试此方法。 Eclipse写道“错过了4个分支中的2个”。

public boolean hasNext() {
        return currIndex < currentSize && aList[currIndex] != null;
    }

以下是我写的单元测试。

@Test
public void hasNextIteratorTest() throws FileNotFoundException {
    Part4 p = new Part4();

    Iterator<String> it = p.iterator();
    p.add("hello");
    p.add("dear");
    p.add("friend");
    p.add("!");
    while (it.hasNext()) {
        it.remove();
    }
}

1 个答案:

答案 0 :(得分:2)

如果要覆盖所有分支,则必须测试调用方法时可能发生的所有情况。

//1. 
currIndex < currentSize && aList[currIndex] != null;
//2.
currIndex > currentSize && aList[currIndex] != null;
//3.
currIndex < currentSize && aList[currIndex] == null;
//4.
currIndex > currentSize && aList[currIndex] == null;

您必须在@Test方法(或方法)中强制执行此结果。