Potrzebuję napisać prostego klienta http. Wspaniale byłoby mieć testy jednostkowe dla mojej klasy. Ale nie wiem, jak napisać właściwą i sprawdzalną klasę.Jak napisać test jednostki dla klienta sieciowego?
Na przykład, Mam klienta tak:
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;
};
Jak testować send
metody (to naprawdę wysłać co chcę)? Nie mogę tego wyśmiać. Mogę napisać, że HTTPClient
otrzymuje obiekt SomeLibrary::ClientSession
w konstruktorze (w teście chciałbym przejść makiety), ale czy to jest dobry projekt? Myślę, że sposób realizacji sesji itp. Powinien być ukryty w mojej klasie.
Czy masz jakiś pomysł?