Saiba como criar stubs de implementações de clientes reais para injetar um simulacro em teste de unidade. Usar um cliente simulado com as bibliotecas de cliente do Google Cloud para Rust permite escrever testes de unidade controlados e confiáveis que não fazem chamadas de rede nem geram custos de faturamento.
Dependências
Há vários frameworks de simulação disponíveis para Rust. Este guia usa
mockall. Adicione como uma dependência de desenvolvimento:
cargo add --dev mockall
Além disso, este guia usa o cliente Speech para facilitar o acompanhamento dos exemplos, mas esses conceitos se aplicam a todos os clientes.
Adicione as dependências necessárias ao arquivo Cargo.toml:
cargo add google-cloud-speech-v2 google-cloud-lro
Simular um cliente
Para testar seu código com um cliente simulado, defina uma struct simulada, configure o comportamento esperado dela para seu cenário de teste e injete essa simulação na lógica do aplicativo. O exemplo a seguir demonstra esse fluxo de trabalho.
Primeiro, adicione instruções use para simplificar o código:
Suponha que o aplicativo tenha uma função que usa o cliente Speech
para chamar GetRecognizer, definindo o campo name da solicitação
e processando a resposta do servidor.
É possível testar como o aplicativo processa diferentes respostas do serviço.
Em seguida, defina a estrutura simulada. Essa struct implementa a
característica speech::stub::Speech.
Crie uma instância do simulacro. A macro mockall::mock! adiciona um prefixo Mock ao nome da estrutura definida anteriormente.
Defina expectativas no simulado. Por exemplo, espere que o código chame
GetRecognizer com um nome específico e simule uma resposta bem-sucedida
do serviço.
Crie um cliente Speech usando o simulacro:
Como chamar a função:
Verifique os resultados:
Simular erros
Simular erros é semelhante a simular sucessos. Para simular um erro, modifique o resultado retornado pelo simulacro.
Um cliente criado com from_stub() não tem um loop de novas tentativas interno. Ele
retorna todos os erros do stub diretamente para o aplicativo.
Próximas etapas
Para conferir o código completo deste guia, consulte o arquivo de origem no repositório google-cloud-rust no GitHub.