Questão nº 49

Questão de Tecnologia da Informação · FCC TRT4 2022 (nº 49)

FCC2022Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Dver comentário ↓

Utilizando o Mockito, um Analista verificou que uma das anotações que podia utilizar era criar uma instância de uma classe que se pode "mockar" ou chamar os métodos reais a qual permite que se verifique se um método chama outros métodos. Bastante útil ao tentar colocar o código legado em teste. É uma alternativa ao uso do @InjectMocks, quando é preciso "mockar" métodos da própria classe que está sendo testada.

Trata-se de

Resposta comentada

Gabarito Alternativa D

O @Spy no Mockito permite que você crie uma versão "monitorada" de um objeto real. Isso significa que, por padrão, ele executa os métodos reais da classe, mas você pode escolher "mockar" (substituir o comportamento) de métodos específicos desse mesmo objeto, o que é ótimo para testar partes de um código existente sem reescrevê-lo.

  • (A) Incorreta: @When é uma parte da sintaxe do Mockito (when(...).thenReturn(...)) usada para definir o comportamento de um mock ou spy, não uma anotação para criar uma instância.
  • (B) Incorreta: @Verify é uma parte da sintaxe do Mockito (verify(...)) usada para checar se um método foi chamado em um mock ou spy, não uma anotação para criar uma instância.
  • (C) Incorreta: @Matchers refere-se aos argument matchers do Mockito (como anyString(), eq()), que são usados dentro de when() ou verify(), não uma anotação para criar uma instância.
  • (D) Correta: @Spy (ou Mockito.spy()) cria uma instância real de uma classe, permitindo que seus métodos reais sejam chamados. No entanto, você pode "espiar" e substituir o comportamento de métodos específicos dessa mesma instância, o que se encaixa perfeitamente na descrição de "criar uma instância de uma classe que se pode 'mockar' ou chamar os métodos reais a qual permite que se verifique se um método chama outros métodos" e "mockar métodos da própria classe que está sendo testada".
  • (E) Incorreta: @Mock (ou Mockito.mock()) cria uma instância falsa de uma classe, onde todos os métodos, por padrão, não fazem nada e retornam valores padrão (como null ou 0). Para que um método faça algo, você precisa explicitamente definir seu comportamento. A armadilha aqui é que @Mock é muito comum, mas a questão especifica a capacidade de "chamar os métodos reais", o que não é o comportamento padrão de um @Mock, mas sim de um @Spy.

Fonte: FCC TRT4 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho