The Three Laws of TDD-從紅燈變綠燈的過程
By joeychen | 2015/12/15TDD 除了最基本的「紅燈、綠燈、重構」循環外,在「紅燈變綠燈」的過程,建議遵循著 Uncle Bob 這三條簡單的規則 …
tags: 單元測試 重構 C# Legacy Code .NET Static Function
C# Test Legacy Code(4)Unit Test with Static Functions
By joeychen | 2015/06/16這篇文章所要解決的問題類型,也是 legacy code 常見的壞味道,直接與 static function 耦合。這與上面的第二篇直接相依於簡單工廠的 static function 有一點像,但目的卻是不同。
tags: 單元測試 重構 C# Legacy Code .NET expected objects
C# Test Legacy Code(3)Compare Object Equality
By joeychen | 2015/05/25在撰寫單元測試進行驗證時,都需要驗證執行結果是否符合預期。然而,不論是驗證測試方法的回傳值、物件狀態的改變、或是與外部相依物件之間的互動,回傳值、狀態或傳遞給外部相依物件的參數,很常都是以物件的方式存在。
C# Test Legacy Code(2)Static Setter Injection
By joeychen | 2015/05/04在 context 流程中,透過簡單工廠依據條件來取得 interface 的 instance 固然美好,卻往往因為與簡單工廠的 static function 直接耦合,導致這段 context 流程無法進行 isolated unit test。
tags: 單元測試 重構 C# Legacy Code .NET
C# Test Legacy Code(1)Isolated by Inheritance and Override
By joeychen | 2015/02/24Legacy Code 不具備可測試性,所以無法寫單元測試。但如果要重構 Legacy Code 前,又需要測試來保護,那不就變成雞生蛋,蛋生雞的問題了嗎?