otaldoLOCK / ProjetoMVC_Projeto

Projeto Teste no padrão MVC - Com MER, diagrama de classes e diagrama de caso de uso
0 stars 0 forks source link

Teste Produto.java #10

Open Popolinos opened 3 months ago

Popolinos commented 3 months ago

Essa classe possui as funções sobre as informações básicas do produto como valor, descrição e Id. Essas funções foram testadas individualmente para verificar se suportariam os testes feitos nela.

Popolinos commented 3 months ago

Teste certo: Esses testes garantem que a classe Produto funcione conforme o esperado, verificando se os métodos setIdProduto, getIdProduto, setDescricao, getDescricao, setValor, getValor e toString estão retornando os resultados esperados.

Os testes foram realizados no JUnit usando o Intellij:

package Model;

import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*;

class ProdutoTestCerto {

@Test
void setIdProduto() {
    Produto produto = new Produto(1, "Produto A", 10.0f);
    produto.setIdProduto(2);
    assertEquals(2, produto.getIdProduto());
}

@Test
void getIdProduto() {
    Produto produto = new Produto(1, "Produto A", 10.0f);
    assertEquals(1, produto.getIdProduto());
}

@Test
void setDescricao() {
    Produto produto = new Produto(1, "Produto A", 10.0f);
    produto.setDescricao("Produto B");
    assertEquals("Produto B", produto.getDescricao());
}

@Test
void getDescricao() {
    Produto produto = new Produto(1, "Produto A", 10.0f);
    assertEquals("Produto A", produto.getDescricao());
}

@Test
void setValor() {
    Produto produto = new Produto(1, "Produto A", 10.0f);
    produto.setValor(20.0f);
    assertEquals(20.0f, produto.getValor());
}

@Test
void getValor() {
    Produto produto = new Produto(1, "Produto A", 10.0f);
    assertEquals(10.0f, produto.getValor());
}

@Test
void testToString() {
    Produto produto = new Produto(1, "Produto A", 10.0f);
    String expected = "1 - Produto A";
    assertEquals(expected, produto.toString());
}

}

Popolinos commented 3 months ago

Teste errado: Esses testes forçam a classe Produto a lidar com situações onde o ID é negativo, o valor é negativo ou a descrição é nula.

Os testes foram realizados no JUnit usando o Intellij:

package Model;

import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*;

class ProdutoTestErrado {

@Test
void setIdProdutoComIdNegativo() {
    Produto produto = new Produto(1, "Produto A", 10.0f);
    assertThrows(IllegalArgumentException.class, () -> {
        produto.setIdProduto(-2);
    });
}

@Test
void setValorComValorNegativo() {
    Produto produto = new Produto(1, "Produto A", 10.0f);
    assertThrows(IllegalArgumentException.class, () -> {
        produto.setValor(-20.0f);
    });
}

@Test
void testToStringSemDescricao() {
    Produto produto = new Produto(1, null, 10.0f);
    assertThrows(NullPointerException.class, produto::toString);
}

}