0
respostas

Tentei fazer o exercicio sem olhar e estou com um problema...

Segue meu código para entender:

[Theory]
        [InlineData (2, new double[] { 100, 0, 400, -100, -300})]
        public void NaoAceitaLanceDadoValorLanceMenorQueZero(int valorEsperado, double[] lances)
        {
            var leilao = new Leilao("Monalisa");
            var fulano = new Interessada("Fulano", leilao);
            var maria = new Interessada("Maria", leilao);
            leilao.IniciarPregao();
            for(int i = 0; i < lances.Length; i++)
            {
                var valor = lances[i];
                if (i % 2 == 0)
                {
                    leilao.ReceberLance(maria, valor);
                }
                else
                {
                    leilao.ReceberLance(fulano, valor);
                }
            }
            leilao.TerminaPregao();
            var valorObtido = leilao.Lances.Count();
            Assert.Equal(valorEsperado, valorObtido);
        }

Esse é o teste que eu estou tentando bolar pra fazer o exercício

Acrescentei na regra para Lance aceito ou não, que ele tem que ser maior ou igual a zero:

private bool LanceAceito(Interessada cliente, double valor)
        {
            return (EstadoLeilao == EstadoLeilao.LeilaoEmAndamento) && (cliente != _ultimoCliente) && (valor >= 0);
        }

No meu teste eu coloquei vários valores em cima como você viu. No caso ele só deveria deixar passar 2, porque o cliente só pode fazer 1 lance e os outros são negativos.

Só que meu teste não está passando. Está vindo 3 lances. Acredito que ele esteja pegando o 400 de alguma forma.

Mensagem: 
Assert.Equal() Failure
Expected: 2
Actual:   3

A dificuldade que tenho é que não sei o valor que está recebendo exatamente. Eu queria saber como faz para debuggar em relação a testes. Porque quando coloco um breakpoint na classe que tem o método ReceberLance(), cada hora ele recebe um valor diferente porque eu já tenho vários testes. Como faço para debuggar para um teste em específico? Para o método receber os valores só desse teste que escrevi acima. Porque se eu debuggar vou conseguir entender melhor o problema. O exercício não pediu para desenvolver o teste todo, mas eu to tentando fazer sozinha pra ver se aprendo.

Att

Karolina Bento