Lá vou eu. Rodei 3x já aqui e não acho o que está errado. Meu teste está dando erro:
"C:\Program Files\Python39\python.exe" "C:\Program Files\JetBrains\PyCharm Community Edition 2020.3.3\plugins\python-ce\helpers\pycharm\_jb_unittest_runner.py" --target test_avaliador.TestAvaliador.test_avalia
Testing started at 22:04 ...
Launching unittests with arguments python -m unittest test_avaliador.TestAvaliador.test_avalia in C:\Users\Sea Group\OneDrive\Alura\python_9_-_testes_automatizados_tdd
100.0 != 150
Expected :150
Actual :100.0
<Click to see difference>
Traceback (most recent call last):
File "C:\Users\Sea Group\OneDrive\Alura\python_9_-_testes_automatizados_tdd\test_avaliador.py", line 26, in test_avalia
self.assertEqual(maior_valor_esperado, avaliador.menor_lance)
AssertionError: 150 != 100.0
Ran 1 test in 0.003s
FAILED (failures=1)
Process finished with exit code 1
dominio.py
import sys
class Usuario:
def __init__(self, nome):
self.__nome = nome
@property
def nome(self):
return self.__nome
class Lance:
def __init__(self, usuario, valor):
self.usuario = usuario
self.valor = valor
class Leilao:
def __init__(self, descricao):
self.descricao = descricao
self.__lances = []
@property
def lances(self):
return self.__lances
class Avaliador:
def __init__(self):
self.maior_lance = sys.float_info.min
self.menor_lance = sys.float_info.max
def avalia(self, leilao: Leilao):
for lance in leilao.lances:
if lance.valor > self.maior_lance:
self.maior_lance = lance.valor
if lance.valor < self.menor_lance:
self.menor_lance = lance.valor
principal.py
from dominio import Usuario, Lance, Leilao, Avaliador
vini = Usuario('Vini')
panai = Usuario('Panai')
lance_vini = Lance(vini, 100.0)
lance_panai = Lance(panai, 150.0)
leilao = Leilao('Celular')
leilao.lances.append(lance_vini)
leilao.lances.append(lance_panai)
for lance in leilao.lances:
print(f'{lance.usuario.nome} deu um lance de R${lance.valor}')
avaliador = Avaliador()
avaliador.avalia(leilao)
print(f'O menor lance foi de {avaliador.menor_lance} e o maior lance foi de {avaliador.maior_lance}')
test_avaliador.py
from unittest import TestCase
from dominio import Usuario, Lance, Leilao, Avaliador
class TestAvaliador(TestCase):
def test_avalia(self):
vini = Usuario('Vini')
panai = Usuario('Panai')
lance_vini = Lance(vini, 100.0)
lance_panai = Lance(panai, 150.0)
leilao = Leilao('Celular')
leilao.lances.append(lance_vini)
leilao.lances.append(lance_panai)
avaliador = Avaliador()
avaliador.avalia(leilao)
menor_valor_esperado = 100
maior_valor_esperado = 150
self.assertEqual(menor_valor_esperado, avaliador.menor_lance)
self.assertEqual(maior_valor_esperado, avaliador.menor_lance)