Ho una classe di servizio che è responsabile della creazione di istanze di repository e del loro utilizzo. Fa una richiesta Http esterna che idealmente mi piacerebbe prendere in giro per il test. Tuttavia, non sono del tutto sicuro del modo migliore per farlo.
Ad esempio, ora la classe ha questo aspetto:
public function lookUp($identifier)
{
$client = new Curl();
$data = $this->provider->lookUp($identifier, $client);
// do stuff w the response
}
Non è possibile prendere in giro la risposta Http poiché è contenuta nel metodo.
Un'alternativa potrebbe essere quella di fare qualcosa di simile a questo:
public function lookUp($identifier, $client = null)
{
if ($client === null) {
$client = new Curl();
}
$data = $this->provider->lookUp($identifier, $client);
// do stuff w the response
}
e quindi potrei avere un client $ per il beffardo nel mio test. Tuttavia, ciò significherebbe il cambiamento (e la messaggistica) del mio codice solo per lo scopo del test.
Dovrei farlo? C'è un modo migliore per testarlo?