【发布时间】:2010-05-25 14:24:48
【问题描述】:
我正在用 C++ 编写一个 RPC 中间件。我有一个名为 RPCClientProxy 的类,其中包含一个套接字客户端:
class RPCClientProxy {
...
private:
Socket* pSocket;
...
}
构造函数:
RPCClientProxy::RPCClientProxy(host, port) {
pSocket = new Socket(host, port);
}
如你所见,我不需要告诉用户我里面有一个套接字。
虽然,要为我的代理进行单元测试,有必要为套接字创建模拟并将它们传递给代理,为此我必须使用 setter 或将工厂传递给代理构造函数中的套接字。
我的问题:根据 TDD,是否可以仅仅因为测试就这样做?如您所见,这些更改将改变程序员使用库的方式。
【问题讨论】:
-
如您所见,您的问题可能没有“正确”答案,您必须权衡利弊并下定决心......
标签: c++ unit-testing tdd