@Spy

A ideia dessa anotação é que nos permita encapsular a instância de algum objeto existente. De certa forma, é como se ele realmente espionasse algum objeto real.

De uma forma padrão, o Spy irá delegar as chamadas de métodos para esse objeto real e rastrear as chamadas e parâmetros.

Ele é usado em circunstâncias bem mais específicas quando comparado ao @Mock, veja:

  • Simular comportamento de um método da mesma classe que está sendo testada.

  • Testes Unitários em sistemas legados.

Atualizado