"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 métodos para retornar argumentos recebidos em Java?

Como simular métodos para retornar argumentos recebidos em Java?

Publicado em 2024-11-16
Navegar:702

How to Mock Methods to Return Arguments Received in Java?

Métodos de simulação para retornar argumentos recebidos

Na programação orientada a objetos, estruturas de simulação como Mockito são usadas para criar um objeto simulado que simula o comportamento de um objeto real para fins de teste. Um cenário comum em testes é a necessidade de um método simulado retornar o mesmo argumento que foi passado para ele.

Mockito e Expressões Lambda (Mockito 1.9.5 e Java 8 )

Para versões do Mockito 1.9.5 e posteriores em conjunto com Java 8 ou superior, você pode aproveitar expressões lambda para obter este comportamento:

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

Aqui, i representa uma instância de InvocationOnMock e getArguments()[0] recupera o primeiro argumento passado para o método simulado.

Mockito e respostas personalizadas (versões mais antigas)

Para versões mais antigas do Mockito, você pode usar uma implementação personalizada do Mockito Answer:

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

Esta resposta personalizada recupera o argumento passado e o retorna, permitindo que o método simulado ecoe a entrada recebida.

Declaração de lançamento Este artigo foi reimpresso em: 1729677594 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