Boa tarde.
Estou com uma dúvida referente a retorno passado por duas IAs distintas, tanto o ChatGPT (versão GPT-5.1, versão gratuita), quanto o agente de IA integrado ao VSCode vinculado ao GitHub.
Apesar de seguir orientação passada em vídeo pelo instrutor Rodrigo sobre a solicitação de utilizar JUnit 5 e Mockito para os testes automatizados, tive retorno em ambas de que não precisa de Mockito porque a classe não tem dependências externas.
Minha dúvida neste caso seria necessário Mockar os testes ou se com as novas versões de IA pode ter mudanças.
Abaixo encaminho o prompt para cada uma das IAs e seus respectivos retornos.
Prompt para ChatGPT:
Boa tarde. Tenho uma aplicação em Java e preciso criar um código para teste automatizado utilizando JUnit 5 e Mockito. Pode me ajudar nesta criação? Segue abaixo o código do validador que quero realizar o teste:
(Foi copiado o código da classe ValidadorHorarioFuncionamentoClinica neste ponto como instrução para IA)
Retorno do Chat:
Segue um teste direto e funcional usando JUnit 5.
Não precisa de Mockito porque essa classe não tem dependências externas.
class ValidadorHorarioFuncionamentoClinicaTest {
private ValidadorHorarioFuncionamentoClinica validador;
@BeforeEach
void setUp() {
validador = new ValidadorHorarioFuncionamentoClinica();
}
@Test
void devePermitirHorarioValido() {
var data = LocalDateTime.of(2025, 1, 15, 10, 0); // quarta, 10h
var dados = new DadosAgendamentoConsulta(1L, 1L, data);
assertDoesNotThrow(() -> validador.validar(dados));
}
@Test
void deveLancarExcecaoAoAgendarDomingo() {
var data = LocalDateTime.of(2025, 1, 19, 10, 0); // domingo
assertEquals(DayOfWeek.SUNDAY, data.getDayOfWeek());
var dados = new DadosAgendamentoConsulta(1L, 1L, data);
assertThrows(ValidacaoException.class, () -> validador.validar(dados));
}
@Test
void deveLancarExcecaoAntesDaAbertura() {
var data = LocalDateTime.of(2025, 1, 15, 6, 0);
var dados = new DadosAgendamentoConsulta(1L, 1L, data);
assertThrows(ValidacaoException.class, () -> validador.validar(dados));
}
@Test
void deveLancarExcecaoDepoisDoEncerramento() {
var data = LocalDateTime.of(2025, 1, 15, 19, 0);
var dados = new DadosAgendamentoConsulta(1L, 1L, data);
assertThrows(ValidacaoException.class, () -> validador.validar(dados));
}
}
Observações rápidas
- Mockito não é necessário aqui porque não há repository nem dependência a ser mockada.
- Verifique a assinatura do seu DadosAgendamentoConsulta.
O teste acima supõe algo como:
public record DadosAgendamentoConsulta(Long idPaciente, Long idMedico, LocalDateTime data) {}
Prompt via agente de IA através do VSCode:
Obs.: Atualmente o agente de IA identifica a classe aberta onde se está realizando o prompt. Por estar de forma automática, foi selecionado a versão GPT5-mini.
Boa tarde.
Gostaria de realizar a criação de teste automatizado utilizando Junit5 e Mokito para esta classe, para este caso, como posso realizar?
Abaixo segue classe de teste criada pelo agente de IA no VSCode.
class ValidadorHorarioFuncionamentoClinicaTest {
private final ValidadorHorarioFuncionamentoClinica validador = new ValidadorHorarioFuncionamentoClinica();
@Test
void naoDeveLancarQuandoHorarioValido() {
var dados = new DadosAgendamentoConsulta(null, 1L, LocalDateTime.of(2026, 1, 5, 10, 0), null);
assertDoesNotThrow(() -> validador.validar(dados));
}
@Test
void deveAceitarHorarioLimiteAberturaEFechamento() {
var inicio = new DadosAgendamentoConsulta(null, 1L, LocalDateTime.of(2026, 1, 5, 7, 0), null);
var fim = new DadosAgendamentoConsulta(null, 1L, LocalDateTime.of(2026, 1, 5, 18, 0), null);
assertDoesNotThrow(() -> validador.validar(inicio));
assertDoesNotThrow(() -> validador.validar(fim));
}
@Test
void deveLancarQuandoAntesDaAbertura() {
var dados = new DadosAgendamentoConsulta(null, 1L, LocalDateTime.of(2026, 1, 5, 6, 0), null);
assertThrows(ValidacaoException.class, () -> validador.validar(dados));
}
@Test
void deveLancarQuandoDepoisDoEncerramento() {
var dados = new DadosAgendamentoConsulta(null, 1L, LocalDateTime.of(2026, 1, 5, 19, 0), null);
assertThrows(ValidacaoException.class, () -> validador.validar(dados));
}
@Test
void deveLancarQuandoDomingo() {
var domingo = new DadosAgendamentoConsulta(null, 1L, LocalDateTime.of(2026, 1, 4, 10, 0), null);
assertThrows(ValidacaoException.class, () -> validador.validar(domingo));
}
}