2
respostas

Erro na execução do teste

package br.com.felipe.leilao.acceptance.steps;

import java.math.BigDecimal;

import org.junit.Assert;

import br.com.felipe.leilao.model.Lance; import br.com.felipe.leilao.model.Leilao; import br.com.felipe.leilao.model.Usuario; import io.cucumber.java.pt.*;

public class PropondoLanceSteps {

private Lance lance;
private Lance lance10;
private Lance lance15;
private Leilao leilao;

@Dado("um lance valido")
public void dado_um_lance_valido() {
    Usuario usuario = new Usuario("fulano");
    lance = new Lance(usuario , BigDecimal.TEN);
    leilao = new Leilao("Tablet Samsung");
}

@Quando("propoe o lance para o leilao")
public void quando_propoe_o_lance() {
    leilao.propoe(lance);

}

@Entao("o lance eh aceito")
public void entao_o_lance_eh_aceito() {
    Assert.assertEquals(1, leilao.getLances().size());
    Assert.assertEquals(BigDecimal.TEN, leilao.getLances().get(0).getValor());
}

@Dado("varios lances validos")
public void varios_lances_validos() {
    Usuario usuario1 = new Usuario("fulano");
    lance10 = new Lance(usuario1 , BigDecimal.TEN);
    Usuario usuario2 = new Usuario("beltrano");
    lance15 = new Lance(usuario2 , new BigDecimal("15.0"));
    leilao = new Leilao("Tablet XPTO");
}

@Quando("propoe varios lances ao leilao")
public void propoe_varios_lances_ao_leilao() {
    leilao.propoe(lance10);
    leilao.propoe(lance15);
}

@Entao("os lances sao aceitos")
public void os_lances_sao_aceitos() {
    Assert.assertEquals(1, leilao.getLances().size());
    Assert.assertEquals(BigDecimal.TEN, leilao.getLances().get(0).getValor());
    Assert.assertEquals(new BigDecimal("15.0"), leilao.getLances().get(1).getValor());
}

}

======================================================= java.lang.AssertionError: expected:<1> but was:<2> at org.junit.Assert.fail(Assert.java:89) at org.junit.Assert.failNotEquals(Assert.java:835) at org.junit.Assert.assertEquals(Assert.java:647) at org.junit.Assert.assertEquals(Assert.java:633) at br.com.felipe.leilao.acceptance.steps.PropondoLanceSteps.os_lances_sao_aceitos(PropondoLanceSteps.java:55)

at ✽.os lances sao aceitos(classpath:features/propondo_lances.feature:13)

======================================================= propondo_lances.feature:

language: pt

Caracteristica: Propondo lances ao leilao

Cenario: Propondo um unico lance valido Dado um lance valido Quando propoe o lance para o leilao Entao o lance eh aceito

Cenario: Propondo varios lances validos Dado varios lances validos Quando propoe varios lances ao leilao Entao os lances sao aceitos

=======================================================

Por que será que está dando o erro no método: os_lances_sao_aceitos() ?

2 respostas

Já descobri: estava instanciando o usuário2 como "fulano"

e na linha do assert Assert.assertEquals(2, leilao.getLances().size());

eu copiei o parâmetro aqui como 1

Olá Felipe, tudo bem?

Pelo erro apresentado, parece que o método "os_lances_sao_aceitos()" está esperando que exista apenas um lance na lista de lances do leilão, mas na verdade existem dois lances. Por isso, o teste falha com a mensagem "expected:<1> but was:<2>".

Verifique se o método "propoe_varios_lances_ao_leilao()" está adicionando corretamente os lances na lista do leilão. Talvez seja necessário ajustar a implementação desse método para que ele adicione os lances corretamente.

Espero ter ajudado e 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