我想單元測試下面的代碼。我一直在使用MSTest,並試圖學習Microsoft Moles和RhinoMocks。但我不能讓他們都不幫助我。我知道我可以大幅改變代碼以使用更易測試的接口,但這需要我編寫封裝了TcpClient,NetworkStream,StreamWriter和StreamReader的接口和實現。如何對網絡連接進行單元測試?
我已經爲此編寫了集成測試,我猜測有摩爾人精通的人可以在不更改代碼的情況下很容易地爲此進行單元測試。
using (TcpClient tcpClient = new TcpClient(hostName, port))
using (NetworkStream stream = tcpClient.GetStream())
using (StreamWriter writer = new StreamWriter(stream))
using (StreamReader reader = new StreamReader(stream))
{
writer.AutoFlush = true;
writer.Write(message);
return reader.ReadLine();
}
有些事情只是不值得嘗試「單元測試」。如果你嘲笑這個方法使用的部分,你基本上會檢查一個屬性setter,一個調用`writer`的方法和一個調用`reader`的方法。這裏沒有太多的行爲,測試也不是非常有趣。現在測試使用這個方法的類會很有趣,所以我完全讓這個類實現一個接口,並測試調用它的組件。 – 2011-12-16 12:33:34
@ MerlynMorgan-Graham我同意 – 2011-12-16 12:37:17