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

Quero saber se tenho que colocar contexto em cada spec, ou posso criar um contexto unico para mais de 1 spec

package br.com.caelum.leilao.service.test;

import br.com.caelum.leilao.service.Avaliador;
import br.com.caelum.leilao.dominio.Lance;
import br.com.caelum.leilao.dominio.Leilao;
import br.com.caelum.leilao.dominio.Usuario;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import static junit.framework.TestCase.assertEquals;

public class AvaliadorTest {

    Usuario maria = new Usuario(1, "Maria");
    Usuario henrique = new Usuario(2, "Henrique");
    Usuario pedro = new Usuario(3, "Pedro");

    Lance l1 = new Lance(maria, 300.0);
    Lance l2 = new Lance(henrique, 800.0);
    Lance l3 = new Lance(pedro, 600.0);

    Leilao leilao = new Leilao("Venda de um computador");
    Avaliador avaliador = new Avaliador();

    double valorMedio = (l1.getValor() + l2.getValor() + l3.getValor()) / 3;

    @Before
    public void initialize() {
        leilao.propoe(l1);
        leilao.propoe(l2);
        leilao.propoe(l3);
        avaliador.avalia(leilao);
        avaliador.calculaValorMedio(leilao);
    }

    @Test
    public void deveriaRetornarMaiorValor(){
        assertEquals(l2.getValor(), avaliador.getMaiorValor());
    }

    @Test
    public void deveriaRetornarMenorValor(){
        assertEquals(l1.getValor(), avaliador.getMenorValor());
    }

    @Test
    public void deveriaRetornarValorMedio(){
        assertEquals(valorMedio, avaliador.getValorMedio());
    }

}
1 resposta
solução!

Oi Henrique, tudo bem ?

Esses seus três testes, para mim deveriam se tornar apenas um, dado que o cenário é apenas esse leilão, vão existir outros cenários, com valores diferentes e condições diferentes que vai ser necessário criar mais objetos.