《單元測試的藝術-第二版》勘誤。
詳情請大家看我在原討論串的說明。
※ 這麼佛心的「譯者」很少見了,邊吃晚餐邊校稿跟解說。
※ 作者的原稿就是筆誤了 XD
感謝 Winnie Lin 的詢問,在單元測試的藝術 ch3,p79 的 ExtensionManagerFactory class 和
裡面的 CreateManager(), SetManager() 方法,應該都要被標記成 static。
3.4.6 這一小節,是在說明:
在產品代碼中,使用簡單工廠的設計模式,會很自然地出現 SUT 相依於工廠類別的 static 方法,這一個直接相依會導致單元測試沒那麼好寫。
然而,這在產品代碼的設計,是完全沒問題的。如果我們為了可測試性,而切開簡單工廠的 static 相依,付出的代價可能比獲得的效益還低。
因此,我們在取捨之下,可以在工廠類別裡面,開放 internal 的 Setter() 方法,供測試程式注入假物件使用。
我們並沒有改變產品代碼使用簡單工廠的方式,我們付出的代價是工廠多出了不必要的對外開放 internal Setter()。
① 透過 internal 而不是 public 來降低副作用的影響範圍。
② 一般的工廠模式,是不會有 Setter() 的,所以這個違反常理的設計,可以直接在團隊裡面訂成開發規範共識,當看到工廠類別的 Setter(),就是為了給單元測試使用。
③ 你可以針對方法名稱直接給清楚 SetXXXForTest(), 也可以補上 Attribute 或 API document 來說明。
最後,請記得工廠如果有 static setter,且測試程式有透過 setter 來注入假物件,要透過 [Setup] 在每次測試執行前,把這些注入的假物件 set 成 null,以還原成產品代碼的原始狀態。
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「static 類別 方法」的推薦目錄:
- 關於static 類別 方法 在 91 敏捷開發之路 Facebook 的最佳貼文
- 關於static 類別 方法 在 コバにゃんチャンネル Youtube 的最佳解答
- 關於static 類別 方法 在 大象中醫 Youtube 的最佳貼文
- 關於static 類別 方法 在 大象中醫 Youtube 的精選貼文
- 關於static 類別 方法 在 Java學習筆記-方法(Method) 的評價
- 關於static 類別 方法 在 009 類別成員(static member) 影片10 : Java 教學進階 - YouTube 的評價
- 關於static 類別 方法 在 static class 静态类(Java) - gists · GitHub 的評價
static 類別 方法 在 コバにゃんチャンネル Youtube 的最佳解答
static 類別 方法 在 大象中醫 Youtube 的最佳貼文
static 類別 方法 在 大象中醫 Youtube 的精選貼文
static 類別 方法 在 009 類別成員(static member) 影片10 : Java 教學進階 - YouTube 的推薦與評價
Factory Method(工廠 方法 ) - 009 類別 成員( static member) 影片10 : Java 教學進階 ... 718 views 1 year ago Java 進階教學- 類別 成員. ... <看更多>
static 類別 方法 在 static class 静态类(Java) - gists · GitHub 的推薦與評價
public class MainInStaticClass {. static class Main{. static void main() {. //将主方法写到静态内部类中,从而不必为每个源文件都这种一个类似的主方法. ... <看更多>
static 類別 方法 在 Java學習筆記-方法(Method) 的推薦與評價
存取敘述static 傳回值型態方法名稱(參數列){ ... 程式敘述; ... return 運算式; }. 存取敘述 有:public(公開,可以在程式的任何地方呼叫,甚至是其他class) ... <看更多>