Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

atributos estáticos ou método setUp?

E se ao invés de fazer um método setUp, eu quiser fazer um cenário de testes com atributos estáticos? Quais vantagens e desvantagens eu teria? Seria falta de boas práticas, ou, eu teria problemas de fato?

setUp:

class TestAvaliador(TestCase):

     def setUp(self):
        self.gui = Usuario('Gui')
        self.lance_do_gui = Lance(self.gui, 150.0)
        self.leilao = Leilao('Celular')

métodos estáticos:

class TestAvaliador(TestCase):

    gui = Usuario('Gui')
    lance_do_gui = Lance(self.gui, 150.0)
    leilao = Leilao('Celular')
1 resposta
solução

Olá Henrique, tudo certo?

Nesse caso, a principal diferença seria que o Python não iria criar um novo objeto a cada invocação do método de testes. Isto é, ele criaria apenas uma instância e compartilharia ela entre os métodos da classe.

No caso dos objetos do tipo Usuario, isso não chega a causar nenhum problema, porém, no objeto leilão, ele rodaria um teste e o leilão ainda manteria os lances em sua lista, ou seja, esse comportamento pode influenciar em outros testes.

A vantagem de utilizar o método setUp é ter um cenário completamente novo para a execução do teste. Evitando efeitos colaterais.

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