我正在使用C ++编写RPC中间件。 我有一个名为RPCClientProxy的类,其中包含一个套接字客户端:
class RPCClientProxy {
...
private:
Socket* pSocket;
...
}
构造函数:
RPCClientProxy::RPCClientProxy(host, port) {
pSocket = new Socket(host, port);
}
正如您所看到的,我不需要告诉用户我有一个套接字。
但是,为了对我的代理进行单元测试,需要创建套接字的模拟,并将其传递给代理。为此,我必须使用setter或在代理的构造函数中传递工厂给套接字。
我的问题是:根据TDD,仅因为测试而这样做是否可行?正如您所看到的,这些更改将改变程序员使用库的方式。