1
resposta

Teste continua dando erro

Olá,

Mesmo realizando a correção sugerida, o teste continua apresentando erro, apesar do resultado do programa em si, apresentar o resultado correto.

#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):
        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

Resultado do teste

FAILED (failures=1) O usuário Daniel deu o lance de 150.0 O usuário HP deu o lance de 100.0 O menor lance foi de 100.0 e o maior lance foi de 150.0

100.0 != 150.0

Expected :150.0 Actual :100.0

1 resposta

Olá Daniel, teria que ver como está escrito o teste, mas, pelo erro o seu assert ou assertEqual deve ser 100.0 == self.leilao.menor_lance, a questão aqui é assegurar que o resultado seja o menor lance que você deu, nesse caso 100. Testando se 100 != 150 não garante que é o menor valor, só garante que são lances diferentes, perceba que nessa lógica 200 !=150 é verdadeiro mas 200 não é o menor lance.

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