Boa noite, pessoal! Tudo bem?
Estava fazendo a implementação dos testes e decidi por minha conta tentar colocar a criação da classe Avaliador dentro do método setUp. Entretanto, quando fui rodas os testes, o mesmo falhou(test_that_returns_the_highest_and_lowest_bid_did_in_ascending_order
).
Alguém saberia dizer o pq isso aconteceu? Alguém tentou fazer algo semelhante? Pensei nessa ideia pelo fato de sempre se criar um avaliador em todos os test cases e também por saber que o método setUp sempre instancia novos objetos ao executar um novo teste.
O erro que aconteceu foi que os valores de maior lance e menor lance não estão sendo atualizados dentro da classe Avaliador, e assim o teste falha. Constatei isso utilizando o modo debug do pycharm. Abaixo encontra-se meu codigo e a falha gerada.
from unittest import TestCase
from domain import User, Bid, Auction, Evaluator
class TestEvaluator(TestCase):
def setUp(self):
# Create users
self.gui = User("Gui")
self.yuri = User("Yuri")
# Create users bid
self.bid_yuri = Bid(self.yuri, 100)
self.bid_gui = Bid(self.gui, 150)
# Create the auction
self.auction = Auction("Celular")
# Create the evaluator
self.evaluator = Evaluator()
self.evaluator.evaluate(self.auction)
def test_that_returns_the_highest_and_lowest_bid_did_in_ascending_order(self):
# Test Case - 1
self.auction.bids.append(self.bid_yuri)
self.auction.bids.append(self.bid_gui)
# Test Result - 1
lowest_value_expected = 100
highest_value_expected = 150
self.assertEqual(lowest_value_expected, self.evaluator.lowest_bid)
self.assertEqual(highest_value_expected, self.evaluator.highest_bid)
def test_that_should_returns_the_highest_and_lowest_bid_did_in_descending_order(self):
# Test Case - 2
self.auction.bids.append(self.bid_gui)
self.auction.bids.append(self.bid_yuri)
# Test Result - 2
lowest_value_expected = 100
highest_value_expected = 150
self.assertEqual(lowest_value_expected, self.evaluator.lowest_bid)
self.assertEqual(highest_value_expected, self.evaluator.highest_bid)
def test_that_should_returns_the_same_value_to_variables_highest_and_lowest_bid_when_the_auction_has_only_one_bid(self):
self.auction.bids.append(self.bid_gui)
self.assertEqual(150, self.evaluator.highest_bid)
self.assertEqual(150, self.evaluator.lowest_bid)
def test_that_returns_the_highest_and_lowest_bid_when_the_auction_has_3_bids(self):
vini = User("Vini")
bid_vini = Bid(vini, 200)
self.auction.bids.append(self.bid_gui)
self.auction.bids.append(self.bid_yuri)
self.auction.bids.append(bid_vini)
lowest_value_expected = 100
highest_value_expected = 200
self.assertEqual(lowest_value_expected, self.evaluator.lowest_bid)
self.assertEqual(highest_value_expected, self.evaluator.highest_bid)
# self.assertEqual(lowest_value_expected, self.evaluator.lowest_bid)
#AssertionError: 100 != 1.7976931348623157e+308