最近,要實現一個通過TCP與服務器通訊,並獲取數據的app。
考慮到有GUI,就選了C#。
System.Net.Socket下的Socket和TcpClIEnt都是concrete class,在TDD時,如何Mock就遇到麻煩了。
NMock2只支持Interface;
找到Rhino Mocks,有以下limitations
You cannot create a mock object from a sealed class.
You cannot create a mock object from a private interface.
You cannot intercept calls to non-virtual methods.
google了兩天,找到一篇韓國的blog,說只能自己創建Interface,然後用lighted wrap class對TcpClIEnt包裝一下。
MS是怎麼設計的。像Java的Socket都是Interface,TDD很方便。
有一篇比較NMock、Rhino Mocks的博客http://idior.cnblogs.com/archive/2005/08/08/209351.Html