我的團隊中的一位同事說某些方法應該同時具備前提條件&後置條件。但關鍵在於代碼覆蓋率,這些條件直到實現了一個無效實現(在單元測試中才使用)才被調用(未測試)。讓我們以下面的例子。我們後續條件和TDD
public interface ICalculator
{
int Calculate(int x, int y);
}
public int GetSummary(int x, int y)
{
// preconditions
var result = calculator.Calculate(x, y);
// postconditions
if (result < 0)
{
**throw new Exception("...");**
}
return result;
}
兩個選項:
1 /刪除測試實現+後置
2 /保留兩個測試實現+後置
您能否給一些建議好嗎?
難道你不是這個意思,「總是避免教條。」 ? ;-) –
我認爲,作爲教條的資格......德哦! – duffymo
發現我們的測試存在問題,這是嘲笑引用服務的問題(在本例中是ICalculator)。也可以嘲笑返回壞結果違反後置條件,並刪除「實施的無效實現(僅用於單元測試)」。 – fred