最近,要实现一个通过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