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

Isso serve como exemplo?

Criei Classes para treinar o JUnit e o que foi visto nesta aula e quero conferir se entendi direito.

Obs: eu forcei um erro removendo o "f" de float no construtor do método "testaEntradaProibida" para verificar se o JUnit da retorno, como podem ver nos códigos abaixo.

package boate;

public class Boate {

    private String nome;
    private String endereco;
    private double tamanho;
    private float precoEntrada;

    public Boate(String nome, String endereco, double tamanho, float precoEntrada) {
        this.nome = nome;
        this.endereco = endereco;
        this.tamanho = tamanho;
        this.precoEntrada = precoEntrada;
    }

    public void liberaEntrada(Cliente cliente) {
        if (cliente.getIdade() >= 18 && cliente.getSaldo() >= this.precoEntrada) {
            System.out.println("Entrada Liberada!");
        } else {
            System.out.println("Entrada Proibida!");
        }
    }

    public String getNome() {
        return nome;
    }

    public String getEndereco() {
        return endereco;
    }

    public double getTamanho() {
        return tamanho;
    }

    public float getPrecoEntrada() {
        return precoEntrada;
    }
}
package boate;

public class Cliente {

    private String nome;
    private char genero;
    private String cpf;
    private int idade;
    private float saldo;

    public Cliente(String nome, char genero, String cpf, int idade, float saldo) {
        this.nome = nome;
        this.genero = genero;
        this.cpf = cpf;
        this.idade = idade;
        this.saldo = saldo;
    }

    public String getNome() {
        return nome;
    }

    public char getGenero() {
        return genero;
    }

    public String getCpf() {
        return cpf;
    }

    public int getIdade() {
        return idade;
    }

    public float getSaldo() {
        return saldo;
    }
}
package test;

import org.junit.jupiter.api.Test;

import boate.Boate;
import boate.Cliente;

class BoateTest {

    @Test
    void testaEntradaLiberada() {
        Boate bt = new Boate("Boate Mario Bros", "Rua dos Cogumelos", 500, 120.00f);
        bt.liberaEntrada(new Cliente("Lucas", 'M', "222.333.111-00", 23, 180.00f));
    }

    @Test
    void testaEntradaProibida() {
        Boate bt = new Boate("Boate Mario Bros", "Rua dos Cogumelos", 500, 120.00f);
        bt.liberaEntrada(new Cliente("Jorge", 'M', "111.222.111-00", 17, 230.00));
    }

}

Compilação: Insira aqui a descrição dessa imagem para ajudar na acessibilidade Eu entendi bem?

1 resposta
solução!

Oi Lucas,

Na verdade está acontecendo um erro de compilação e não de falha nos testes, pois se você remover o f o Java vai considerar que o valor é do tipo int e não do tipo float.

E outra coisa, nos seus testes você instanciou os objetos e chamou um método, mas não fez nenhum assert do junit, então o teste sempre vai passar, pois ele não está verificando nada.

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