我一直在考慮創建一個Java框架,它允許程序員指定接口上的不變量(前置條件和後置條件)。目的是爲了使代碼更健壯,並減少需要爲同一接口的不同實現編寫的單元測試的數量。將不變量添加到Java中的接口中
我設想創建一些方法來註釋方法,程序員也可以編寫不變式。例如。
interface Sort {
int [] sort(int [] nums);
}
會裝飾一個註釋以確保任何實現返回一個排序列表。這個註釋將被鏈接到可以在編譯時針對任何實現運行的單元測試。
這是一個瘋狂的想法,還是這會對更廣泛的編程社區有用?
我不確定在編譯期間是否將它與單元測試鏈接起來是一個好的舉措。因爲_having測試通過只是東西_,如果你知道我的意思。 使用方面編織器可能是一個更好的方法,不是嗎? (然後下一個問題將是 - performance) – yclian 2010-07-22 15:33:03
@yclian,我認爲這個想法是使用這些前後條件來執行各種靜態分析,以減少需要按順序編寫的單元測試的數量獲得同等的覆蓋面。我沒有看到任何暗示這肯定會是一個運行時間的東西(儘管也許有些運行時斷言可以用來防範靜態分析無法證明安全的語句)。 – Gian 2010-07-22 15:53:32