Criei uma classe para calcular o salário de vendedor e usar o teste unitário. Quero saber se esta tudo correto.
public class Vendedor {
private String nome;
private float salario;
private int vendas;
private double comissao;
public Vendedor(String nome, float salario, int vendas) {
this.nome = nome;
this.salario = salario;
this.vendas = vendas;
}
public float calculaSalario() {
if (this.getVendas() > 10) {
this.comissao = 15.0;
return (float) (this.getSalario() + this.getVendas() * this.comissao);
} else if (this.getVendas() == 10) {
this.comissao = 10.0;
return (float) (this.getSalario() + this.getVendas() * this.comissao);
} else {
this.comissao = 5.0;
return (float) (this.getSalario() + this.getVendas() * this.comissao);
}
}
public String getNome() {
return nome;
}
public float getSalario() {
return salario;
}
public int getVendas() {
return vendas;
}
public double getComissao() {
return comissao;
}
}
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import junit.framework.Assert;
class VendedorTest {
@Test
public void vendedorQueVendeuMaisDe10Unidades() {
Vendedor vd = new Vendedor("Júlio", 1200.0f, 12);
assertEquals(1380.0f, vd.calculaSalario());
System.out.println("O salário do vendedor " + vd.getNome() + " é R$ " + vd.calculaSalario());
}
@Test
public void vendedorQueVendeu10Unidades() {
Vendedor vd = new Vendedor("Marcelo", 1200.0f, 10);
assertEquals(1300.0f, vd.calculaSalario());
System.out.println("O salário do vendedor " + vd.getNome() + " é R$ " + vd.calculaSalario());
}
@Test
public void vendedorQueMenosDe10Unidades() {
Vendedor vd = new Vendedor("Lucas", 1200.0f, 8);
assertEquals(1240.0f, vd.calculaSalario());
System.out.println("O salário do vendedor " + vd.getNome() + " é R$ " + vd.calculaSalario());
}
}
Tudo ok?