Ho bisogno di scrivere un semplice client http. Potrebbe essere bello avere test unitari per la mia classe. Ma non so come scrivere una classe corretta e verificabile.
Ad esempio, ho un client come questo:
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;
};
Come testare il metodo send
(che invio veramente quello che voglio)? Non posso deriderlo. Posso scrivere che HTTPClient
riceve SomeLibrary::ClientSession
oggetto nel costruttore (nel test passerei il mock) ma è un buon design? Penso che il modo di attuare la sessione ecc. Debba essere nascosto nella mia classe.
Hai qualche idea?