我需要编写一个简单的HTTP客户端。为我的类编写单元测试将是很好的事情。但我不知道如何编写适当且可测试的类。
例如,我有一个像这样的客户端:
class HTTPClient
{
public:
HTTPCLient(const std::string& host, const std::string& port): session(host, port) {}
void send()
{
session.sendRequest(someRequest);
Response response = session.receiveResponse();
// ...
}
private:
SomeLibrary::ClientSession session;
};
如何测试“send”方法(我真的发送了我想要的内容)?我不能模拟它。我可以写HTTPClient
在构造函数中接收SomeLibrary :: ClientSession
对象(在测试中我将传递模拟),但这是好设计吗?我认为会话等实现方式应该隐藏在我的类中。你有什么想法吗?