私は単純な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
オブジェクトを受け取ると書くことができます(テストではモックを渡すでしょう)が良いデザインですか?私はセッションなどの実装方法が私のクラスに隠されるべきだと思う。
ご存知ですか?