Open Popolinos opened 3 months ago
Teste certo: Testamos a classe da maneira que ela foi pensada para ser usada, ou seja, respeitamos o tipo da entrada de dados.
Para fazermos os testes utilizamos o JUnit por meio do Intellij:
package Model;
import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*;
class VendaItemTestCerto {
@Test
void testToString() {
Produto produto = new Produto(1, "Produto A", 10.0f);
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
vendaItem.setProduto(produto);
String expected = " Código Item: 1\n" +
" Produto: Produto A\n" +
" Valor Unitário: 10,00\n" +
" Quantidade: 5\n" +
" Total: 50,00";
assertEquals(expected, vendaItem.toString());
}
@Test
void setProduto() {
Produto produto = new Produto(1, "Produto A", 10.0f);
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
vendaItem.setProduto(produto);
assertEquals(produto, vendaItem.getProduto());
}
@Test
void getProduto() {
Produto produto = new Produto(1, "Produto A", 10.0f);
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
vendaItem.setProduto(produto);
assertEquals(produto, vendaItem.getProduto());
}
@Test
void setIdVendaItem() {
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
vendaItem.setIdVendaItem(2);
assertEquals(2, vendaItem.getIdVendaItem());
}
@Test
void getIdVendaItem() {
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
assertEquals(1, vendaItem.getIdVendaItem());
}
@Test
void setQuantidade() {
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
vendaItem.setQuantidade(10);
assertEquals(10, vendaItem.getQuantidade());
}
@Test
void getQuantidade() {
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
assertEquals(5, vendaItem.getQuantidade());
}
@Test
void setValorUnitario() {
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
vendaItem.setValorUnitario(20.0f);
assertEquals(20.0f, vendaItem.getValorUnitario());
}
@Test
void getValorUnitario() {
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
assertEquals(10.0f, vendaItem.getValorUnitario());
}
}
Teste errado: Esses testes forçam a classe VendaItem a lidar com situações onde o produto é nulo, a quantidade é negativa ou o valor unitário é negativo.
Para fazermos os testes utilizamos o JUnit por meio do Intellij:
package Model;
import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*;
class VendaItemTestErrado {
@Test
void testToStringSemProduto() {
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
assertThrows(NullPointerException.class, vendaItem::toString);
}
@Test
void setQuantidadeComQuantidadeNegativa() {
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
assertThrows(IllegalArgumentException.class, () -> {
vendaItem.setQuantidade(-10);
});
}
@Test
void setValorUnitarioComValorUnitarioNegativo() {
VendaItem vendaItem = new VendaItem(1, 5, 10.0f);
assertThrows(IllegalArgumentException.class, () -> {
vendaItem.setValorUnitario(-20.0f);
});
}
}
A classe VendaItens.java possui funções que definem o Id a quantidade, o valor e o nome dos produtos. Essas funções foram testadas individualmente para verificar se suportariam os testes feitos nela.