Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Calcula salário de vendedor

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());
    }

}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Tudo ok?

1 resposta
solução!

Oi Lucas,

Esse seu exemplo está certinho sim!

Você escreveu na classe Vendedor o método calculaSalario, que executa uma regra de negócio da aplicação baseada na quantidade de vendas. E sua classe de teste simulou os vários cenários possíveis.

A única coisa que recomendo é tirar os System.out dos métodos de testes, deixando apenas os asserts mesmo.

Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software