Quindi, sto facendo un progetto che deve consumare un servizio REST. Sto usando C # e sto scrivendo io stesso con la classe HttpClient
. Cerco anche di creare alcune unit test per la mia libreria, ma quella classe non lo rende facile. Qui ci sono parti del conflitto:
-
HttpClient
è progettato per essere utilizzato come singleton, come indicato da ad esempio, questo articolo. - Verificare l'interazione con un servizio dovrebbe sostituire la dipendenza dal servizio reale per un falso, poiché il test unitario dovrebbe essere il più indipendente possibile.
- HttpClient non implementa alcuna interfaccia, quindi non puoi realizzare la tua implementazione, ma sembra che tu debba implementare
HttpMessageHandler
per scambiare richieste come qui -
HttpClient
è inizializzato conHttpMessageHandler
e il gestore usato non può essere modificato in fase di runtime.
Ora mi sforzo di implementare la libreria con tutto questo in mente. In questo momento ho Gestore come parametro nel singleton GetInstance, tuttavia il parametro viene utilizzato solo se è la prima chiamata e ignorato tutte le altre volte, il che sembra un cattivo design e un comportamento inaspettato. Si prega di avvisare.