1
resposta

Erro nao esperado

Quando eu executo o teste ele nem da o mesmo erro que o seu e dps que eu mudo o $lance1 para $lance2 e vice e versa mas o erro continua dando o mesmo erro.

public function avalia(Leilao $leilao): void
    {
        foreach ($leilao->getLances() as $lance) {
            if ($lance->getValor() > $this->maiorValor){
                $this->maiorValor = $lance->getValor();
            }
            if ($lance->getValor() < $this->menorValor){
                $this->menorValor = $lance->getValor();
            }
        }
        $lances = $leilao->getLances();
        usort($lances, function (Lance $lance1, Lance $lance2) {
            return $lance2->getValor() - $lance1->getValor();
        });
        $this->maioresLances = array_slice($lances, 0, 3);
    }

// Avaliador Test

public function testAvaliadorDeveBuscar3MarioresValores()
    {
        $leiao = new Leilao('Corsa capotado');
        $joao = new Usuario('João');
        $maria = new Usuario('Maria');
        $ana = new Usuario('Ana');
        $jorge = new Usuario('Jorge');

        $leiao->recebeLance(new Lance($joao, 1500));
        $leiao->recebeLance(new Lance($ana, 1000));
        $leiao->recebeLance(new Lance($maria, 2000));
        $leiao->recebeLance(new Lance($jorge, 1700));

        $leiloeiro =  new Avaliador();
        $leiloeiro->avalia($leiao);

        $maiores = $leiloeiro->getMaioresLances();
        static::assertCount(3, $maiores);
        static::assertEquals(2000, $maiores[0]->getValor);
        static::assertEquals(1700, $maiores[1]->getValor);
        static::assertEquals(1500, $maiores[2]->getValor);
    }

O erro é este

1) Alura\Leilao\Tests\Service\AvaliadorTest::testAvaliadorDeveBuscar3MarioresValores
Undefined property: Alura\Leilao\Model\Lance::$getValor

C:\xampp\htdocs\ativadeumTest\tests\Service\AvaliadorTest.php:130
1 resposta

Nos seus testes você não está chamando o método getValor corretamente. Faltaram os parêntesis.