"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 privados de maneira eficaz com PowerMock e Mockito?

Como simular métodos privados de maneira eficaz com PowerMock e Mockito?

Publicado em 2024-11-08
Navegar:901

How to Effectively Mock Private Methods with PowerMock and Mockito?

Solução alternativa para simulação de métodos privados com PowerMock

Apesar de encontrar dificuldades com a solução inicialmente proposta usando PowerMock, uma abordagem alternativa se mostrou bem-sucedida. Usando uma combinação de Mockito e PowerMock, é possível simular métodos privados de forma eficaz.

Conforme ilustrado no trecho de código fornecido, a classe CodeWithPrivateMethod possui um método público significantPublicApi que invoca um método privado doTheGamble. Para simular o comportamento de doTheGamble, a classe de teste CodeWithPrivateMethodTest utiliza PowerMock para espionar uma instância da classe original e usa Mockito para especificar o valor de retorno desejado.

Neste cenário específico, quando o método privado doTheGamble é chamado com qualquer argumento de string e número inteiro, é instruído a retornar verdadeiro. Isso faz com que o método público significativoPublicApi acione uma RuntimeException.

A configuração completa do teste é realizada por meio da anotação @PrepareForTest do PowerMock, que garante que a classe em teste esteja preparada para espionagem. O teste é executado usando o PowerMockRunner, que facilita a zombaria de métodos estáticos e privados.

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