我是TDD的忠實粉絲,我通常會在編寫代碼之前爲我的大學作業編寫測試用例。因此,這裏是我的任務的接口:如何使用JUnit單元測試鏈表
public interface SinglyLinkedList<E> {
public void insertFirst(E e);
public void insertAfter(E e, int index);
public void removeFirst();
public void remove(int index);
public void removeAll();
public E getFirst();
public E get(int index);
public int size();
public String toString();
}
我寫了整個測試用例,但它的感覺就像我寫的不好的測試代碼。我找不到一種方法來編寫我的測試方法atomic。胃內我不能使用size()來測試remove()方法。或者我無法找到一種方法來測試insertFirst()而不調用get()之後。 據我所知,沒有辦法標記testmethods依賴關係嗎?有沒有一種方法可以解決這個問題? 或者你會如何解決這個問題?
我在一個測試方法remove()中使用size()沒有看到任何錯誤:remove()的約定的一部分是如果要移除的對象位於列表中,它必須遞減大小,所以它很自然調用remove()後檢查大小是否正確。 –
請注意,完整的TDD方法會從較小的開始,而不是在未經測試的情況下編寫整個接口。這樣,您可以建立起來,而不用擔心使用其他方法的方法,因爲它們已經過測試和工作。 – jonrsharpe
信息隱藏的重點是限制一個類到公共接口。測試只能確定這個接口*總體上反映了對象的正確,一致的狀態。編寫測試的任務是在不同的星座中找到一組(最少)一組調用,這些調用集中在作爲測試用例的「目標」的各個方法中。 – laune