Ao rodar o código phpunit AvaliadorTest, recebo a seguinte mensagem:
PHPUnit 7.2.3 by Sebastian Bergmann and contributors.
E 1 / 1 (100%)
Time: 183 ms, Memory: 4.00MB
There was 1 error:
1) AvaliadorTest::testDeveAceitarLancesEmOrdemDecrecente
Undefined property: Lance::$getValor
/home/vagrant/projects/testeAuto/Avaliador.php:10
/home/vagrant/projects/testeAuto/AvaliadorTeste.php:26
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.
Segue meus códigos abaixo:
AvaliadorTest.php
<?php
require "Usuario.php";
require "Lance.php";
require "Leilao.php";
require "Avaliador.php";
use PHPUnit\Framework\TestCase;
class AvaliadorTest extends TestCase
{
public function testDeveAceitarLancesEmOrdemDecrecente()
{
$leilao = new Leilao("Patinho de borracha");
$renan = new Usuario("Renan");
$jose = new Usuario("José");
$mirian = new Usuario("Mirian");
$mafalda = new Usuario("Mafalda");
$leilao->propoe(new Lance($renan,10));
$leilao->propoe(new Lance($jose,9));
$leilao->propoe(new Lance($mirian,8));
$leilao->propoe(new Lance($mafalda,7));
$leiloeiro = new Avaliador();
$leiloeiro->avalia($leilao);
$maiorEsperado = 10;
$menorEsperado = 7;
$this->assertEquals($maiorEsperado, $leiloeiro->getMaiorLance());
$this->assertEquals($menorEsperado, $leiloeiro->getMenorLance());
}
}
?>
Avaliador.php
<?php
class Avaliador
{
public $maiorValor = -INF;
public $menorValor = INF;
public function avalia(Leilao $leilao)
{
foreach($leilao->getLances() as $lance){
if($lance->getValor > $this->maiorValor)
{
$this->maiorValor = $lance->getValor();
}
if($lance->getValor > $this->maiorValor)
{
$this->menorValor = $lance->getValor();
}
}
}
public function getMaiorLance()
{
return $this->$maiorValor;
}
public function getMenorLance()
{
return $this->$menorValor;
}
}
?>
index.php
<?php
require "AvaliadorTest.php";
$teste = new AvaliadorTeste.php;
$teste->testDeveAceitarLancesEmOrdemDecrecente();
Os demais códigos não foram alterados.