我最近一直在寫很多單元測試。有一個場景,我無法找到一個乾淨的解決方案......測試一個巨大的分解方法及其內部幫助方法
比方說,你有一個方法的野獸:
public void bigMethod() {
// a lot of code goes in here
}
爲了使您的生活更輕鬆,你的代碼更清潔你平時分解等獸成更小的內方法:
public void bigMethod() {
a();
b();
c();
// etc.
}
可以測試所有的內方法(一()中,b(),C()等)獨立地。問題是bigMethod()也應該被測試,但它唯一做的就是鏈接一些其他方法的調用,並且已經經過了徹底的測試!
你如何處理這種情況?您不能僅僅因爲需要確保a(),b()和c()在IN PROPER ORDER中被調用而不對bigMethod()進行測試。但是爲bigMethod()寫一個測試會導致很多重複測試。每次減少這種重複是很麻煩的,因爲你會這樣做。這在我腦海
一個想法是:
public void bigMethod() {
helperA.a();
helperB.b();
helperC.c();
// etc.
}
在這種情況下,你測試每一個輔助類,然後確保bigMethod()調用它們序。乾淨而乾淨,但在項目中引入了很多非常小的類。
幫助測試ninjas!
'尼斯和清潔,但介紹了很多非常小的班進入project.'小,乾淨,簡單,易於測試,mockable,可重複使用,並與一個責任。對我來說聽起來不那麼糟糕... – digitaljoel