Skip to content

Instantly share code, notes, and snippets.

@guiathayde
Created September 2, 2025 14:13
Show Gist options
  • Select an option

  • Save guiathayde/425c53a215c7cb25626e2207892fcaa7 to your computer and use it in GitHub Desktop.

Select an option

Save guiathayde/425c53a215c7cb25626e2207892fcaa7 to your computer and use it in GitHub Desktop.
IMCCalculadoraTest.java
package org.example;
import org.example.s01.ex3.IMCCalculadora;
import org.example.s01.ex3.IMCStatus;
import org.example.s01.ex3.Pessoa;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class IMCCalculadoraTest {
@Test
public void testCalcularComPesoOuAlturaInvalidos() {
IMCCalculadora calculadora = new IMCCalculadora();
Pessoa pessoaComPesoInvalido = new Pessoa("João", 0, 1.75);
Pessoa pessoaComAlturaInvalida = new Pessoa("Maria", 70, 0);
// Verifica se a exceção é lançada para peso inválido
Exception exceptionPeso = assertThrows(IllegalArgumentException.class, () -> {
calculadora.calcular(pessoaComPesoInvalido);
});
// Verifica se a exceção é lançada para altura inválida
Exception exceptionAltura = assertThrows(IllegalArgumentException.class, () -> {
calculadora.calcular(pessoaComAlturaInvalida);
});
}
@Test
public void testCalcularAbaixoDoPeso() {
IMCCalculadora calculadora = new IMCCalculadora();
// IMC = 17.3 (50 / (1.7 * 1.7))
Pessoa pessoa = new Pessoa("Ana", 50.0, 1.7);
IMCStatus status = calculadora.calcular(pessoa);
// Verifica o valor do IMC (com margem de erro)
double imcEsperado = 50.0 / (1.7 * 1.7);
assertEquals(imcEsperado, status.getImc(), 0.01);
// Verifica a classificação
assertEquals("abaixo do peso", status.getClassificacao());
}
@Test
public void testCalcularPesoNormal() {
IMCCalculadora calculadora = new IMCCalculadora();
// IMC = 22.49 (65 / (1.7 * 1.7))
Pessoa pessoa = new Pessoa("Carlos", 65.0, 1.7);
IMCStatus status = calculadora.calcular(pessoa);
// Verifica o valor do IMC (com margem de erro)
double imcEsperado = 65.0 / (1.7 * 1.7);
assertEquals(imcEsperado, status.getImc(), 0.01);
// Verifica a classificação
assertEquals("normal", status.getClassificacao());
}
@Test
public void testCalcularAcimaDoPeso() {
IMCCalculadora calculadora = new IMCCalculadora();
// IMC = 27.68 (80 / (1.7 * 1.7))
Pessoa pessoa = new Pessoa("Pedro", 80.0, 1.7);
IMCStatus status = calculadora.calcular(pessoa);
// Verifica o valor do IMC (com margem de erro)
double imcEsperado = 80.0 / (1.7 * 1.7);
assertEquals(imcEsperado, status.getImc(), 0.01);
// Verifica a classificação
assertEquals("acima do peso", status.getClassificacao());
}
@Test
public void testCalcularObeso() {
IMCCalculadora calculadora = new IMCCalculadora();
// IMC = 34.6 (100 / (1.7 * 1.7))
Pessoa pessoa = new Pessoa("Julia", 100.0, 1.7);
IMCStatus status = calculadora.calcular(pessoa);
// Verifica o valor do IMC (com margem de erro)
double imcEsperado = 100.0 / (1.7 * 1.7);
assertEquals(imcEsperado, status.getImc(), 0.01);
// Verifica a classificação
assertEquals("obeso", status.getClassificacao());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment