2015-07-10 168 views
0

我知道在TDD中,應該避免編寫事先未經過測試的代碼,但是我想知道這是否是爲了簡單起見可能會破壞規則的那些次之一(避免測試第三方的包裝器用於測試目的的庫,例如網關模式)。我目前正在測試它們雖然,這樣的事情:應該在進行TDD時測試靜態工廠嗎?

[TestMethod] 
public void CreateShouldReturnANewInstance() 
{ 
     var tcpClientMock = new Mock<ITcpClient>(); 
     var spooler2 = OutboundMessageSpooler.Create(tcpClientMock.Object); 
     Assert.IsTrue(spooler2 != null && spooler2 is OutboundMessageSpooler); 
} 

回答

1

你寫的測試在我看來是一個很好的測試,但不是很重要的一條。有一點功能可以從TCP客戶端創建假脫機程序,並且此測試表明該功能單元可以工作。這是推動這種功能的好方法 - 以前沒有用,你用紅色測試演示過,你寫了這個方法,現在它可以工作。涼。必要?可能不會。有助於迴歸?再次,可能不是。作爲未來的測試模式,也許更復雜的邏輯有用嗎?也許。

我不會建議你不要寫這樣的測試 - 畢竟,它們非常易於編寫,並且可以幫助您考慮如何實現該功能 - TDD實際上是什麼 - 但我可能不會也不要求你寫他們。看看你是否找到答案是有幫助的,如果答案是「不多」,那麼在其他地方花費你的試駕資源。