2013-06-01 85 views
2

我剛剛開始學習測試驅動開發和單元測試,但似乎這兩個概念都非常依賴接口結構的使用。鑑於一個接口是一個抽象的構造,沒有實現,在我看來,接口公開的數據必須由消費接口的任何東西重新驗證。所以我想知道...可測試設計是否需要持續驗證,還是我錯過了一些東西?可測試設計是否需要連續驗證?

+0

http://en.wikipedia.org/wiki/Test-driven_development。它有很多信息。 – Esteban

回答

1

一個接口通常被認爲是合同它(通過它的文檔)指定了它的實現者應該如何表現的規則。儘管編譯器無法看到或驗證實現者遵循這些規則,但程序只是假定所有實現者都遵循規則。例如,給定

public interface IPersonInfo { 
    // Returns a valid social security number. 
    String getSocialSecurityNumber(); 
} 

的接口的消費者通常會假設實現者將只返回有效的社會安全號碼,讓消費者無需重新驗證。當然,這是假設您信任實施的代碼;如果這是例如一個用於外部Web服務或第三方插件的接口,您可能需要驗證返回值。然而,一般的做法是,在單個程序中,假定非正式規則將由實現者遵循(並且單元測試通常測試「規範」實現)並且接受如果某人開始使用該程序將會行爲不當一個不合格的實現。

+0

謝謝。這似乎是一個可行的模型。 –