"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como simular retornos do método para argumentos de entrada de eco no Mockito?

Como simular retornos do método para argumentos de entrada de eco no Mockito?

Publicado em 2024-11-04
Navegar:970

How to Mock Method Returns to Echo Input Arguments in Mockito?

Retorno de método simulado: ecoando argumentos de entrada

Ao testar software, pode ser benéfico fazer com que métodos simulados retornem os argumentos que são passados ​​para eles. Esse comportamento pode ser particularmente útil ao verificar interações ou testar o fluxo de dados através de um sistema.

Para Mockito versões 1.9.5 e superiores, essa funcionalidade pode ser alcançada de forma sucinta usando expressões lambda:

when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);

Neste caso, o parâmetro i representa uma instância InvocationOnMock, que fornece acesso ao argumentos passados ​​​​para o método simulado.

Para versões anteriores do Mockito, uma resposta personalizada é necessária:

when(mock.myFunction(anyString())).thenAnswer(new Answer() {
  @Override
  public String answer(InvocationOnMock invocation) throws Throwable {
    Object[] args = invocation.getArguments();
    return (String) args[0];
  }
});

Usando esta abordagem, o mock retornará a mesma String que foi passada para myFunction().

Declaração de lançamento Este artigo foi reimpresso em: 1729678268 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3