Ich muss einfach HTTP-Client schreiben. Es könnte toll sein, Unit-Tests für meine Klasse zu haben. Aber ich weiß nicht, wie man richtige und testbare Klasse schreibt.Wie schreibt man Komponententest für Netzwerk-Client?
Zum Beispiel habe ich einen Klienten wie folgt aus:
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;
};
Wie send
Methode zu testen (die ich wirklich senden, was ich will)? Ich kann es nicht verspotten. Ich kann schreiben, dass HTTPClient
empfängt SomeLibrary::ClientSession
Objekt im Konstruktor (im Test würde ich Pseudo passieren), aber ist es ein gutes Design? Ich denke, dass die Art der Umsetzung der Sitzung usw. in meiner Klasse versteckt werden sollte.
Haben Sie eine Idee?