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

Não consigo rodar o arquivo teste-avaliador.php

arquivo avaliador.php

<?php

namespace Alura\Leilao\Service;
use Alura\Leilao\Model\Leilao;


class avaliador
{
    private $maiorValor;

    public function avalia(Leilao $leilao):void{

        $lances = $leilao->getLances();
        $ultimoLance = $lances [count($lances)-1];
        $this->maiorValor = $ultimoLance -> getValor();
    }
    public function getMaiorValor():float{
       return $this->maiorValor; 
    }
};

Arquivo teste-avaliador.php;

<?php 

use Alura\Leilao\Model\Lance;
use Alura\Leilao\Model\Leilao;
use Alura\Leilao\Model\Usuario;
use Alura\Leilao\Service\avaliador;

require "vendor/autoload.php";

$leilao = new Leilao(descricao:'fiat 147 0KM');
$maria = new Usuario(nome:"maria");
$joao = new Usuario(nome:"João");

$leilao -> recebeLance(new Lance($joao,valor: 3000 ));
$leilao -> recebeLance(new Lance($maria,valor: 3500 ));
$leiloeiro = new avaliador();

$maiorValor = $leiloeiro->getMaiorValor();

echo $maiorValor;

Mensagem de erro;

PHP Fatal error:  Uncaught TypeError: Alura\Leilao\Service\avaliador::getMaiorValor(): Return value must be of type float, null returned in /opt/lampp/htdocs/php/Curso-php-unit/src/Service/avaliador.php:18
Stack trace:
#0 /opt/lampp/htdocs/php/Curso-php-unit/teste-avaliador.php(18): Alura\Leilao\Service\avaliador->getMaiorValor()
#1 {main}
  thrown in /opt/lampp/htdocs/php/Curso-php-unit/src/Service/avaliador.php on line 18
1 resposta
solução!

Quebrei minha cabeça um pouco aqui e notei que não estava chamando a função avalia() da classe avaliador no arquivo teste-avaliador.php

Eu não havia digitado essa linha de código; $leiloeiro->avalia($leilao);

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