Scopri come creare stub delle implementazioni dei client reali per inserire un mock per i test delle unità. L'utilizzo di un client mock con le Google Cloud librerie client per Rust consente di scrivere test delle unità controllati e affidabili che non effettuano chiamate di rete né comportano addebiti di fatturazione.
Dipendenze
Sono disponibili diversi framework di mocking per Rust. Questa guida utilizza
mockall. Aggiungilo come dipendenza di sviluppo:
cargo add --dev mockall
Inoltre, questa guida utilizza il client Speech per semplificare la comprensione degli esempi (ma questi concetti si applicano a tutti i client).
Aggiungi le dipendenze richieste al file Cargo.toml:
cargo add google-cloud-speech-v2 google-cloud-lro
Creare un mock di un client
Per testare il codice con un client mock, definisci una struct mock, configuri il comportamento previsto per lo scenario di test e poi inserisci il mock nella logica dell'applicazione. L'esempio seguente illustra questo flusso di lavoro.
Innanzitutto, aggiungi le istruzioni use per semplificare il codice:
Supponiamo che l'applicazione abbia una funzione che utilizza il client Speech per chiamare GetRecognizer, impostare il campo name della richiesta ed elaborare la risposta del server.
Puoi testare il modo in cui l'applicazione gestisce le diverse risposte del servizio.
Poi, definisci la struct mock. Questa struct implementa il
speech::stub::Speech tratto.
Crea un'istanza del mock. Tieni presente che la
mockall::mock! macro antepone un Mock prefisso al nome della
struct definita in precedenza.
Imposta le aspettative sul mock. Ad esempio, prevedi che il codice chiami GetRecognizer con un nome specifico e simuli una risposta positiva dal servizio.
Crea un client Speech utilizzando il mock:
Chiama la funzione:
Verifica i risultati:
Simulare errori
La simulazione degli errori è simile alla simulazione dei successi. Per simulare un errore, modifica il risultato restituito dal mock.
Un client creato con from_stub() non ha un loop di nuovi tentativi interno; restituisce tutti gli errori dello stub direttamente all'applicazione.
Passaggi successivi
Per visualizzare il codice completo di questa guida, consulta il file di origine nel repository google-cloud-rust su GitHub.