Pesquisar na Comunidade
Mostrando resultados para as tags ''pytest''.
Encontrado 1 registro
-
Olá, fiquei com uma dúvida em uma aula de programação. Para contextualizar: o professor escreveu um módulo chamado Bhaskara que possui uma função que calcula raízes de uma equação do segundo grau. ___________________________________________________________________________________________________ Aqui está o módulo Bhaskara: import math class Bhaskara: def delta(self, a, b, c): return b ** 2 - 4 * a * c def main(self): a_digitado = float(input("Digite o valor de a: ")) b_digitado = float(input("Digite o valor de b: ")) c_digitado = float(input("Digite o valor de c: ")) print(self.calcula_raizes(a_digitado, b_digitado, c_digitado)) def calcula_raizes(self, a, b, c): d = self.delta(a, b, c) if d == 0: raiz1 = (-b + math.sqrt(d)) / (2 * a) return 1, raiz1 else: if d < 0: return 0 else: raiz1 = (-b + math.sqrt(d)) / (2 * a) raiz2 = (-b - math.sqrt(d)) / (2 * a) return 2, raiz1, raiz2 ___________________________________________________________________________________________________ E aqui está uma bateria de testes do módulo Bhaskara, também escrita pelo professor: import Bhaskara import pytest class TestBhaskara: @pytest.fixture def b(self): return Bhaskara.Bhaskara() def testa_uma_raiz(self, b): assert b.calcula_raizes(1, 0, 0) == (1, 0) def testa_duas_raizes(self, b): assert b.calcula_raizes(1, -5, 6) == (2, 3, 2) def testa_zero_raizes(self, b): assert b.calcula_raizes(10, 10, 10) == 0 def testa_raiz_negativa(self, b): assert b.calcula_raizes(10, 20, 10) == (1, -1) ___________________________________________________________________________________________________ Minha dúvida é: existe uma razão para usar essa função fixture do pytest? É uma fatoração melhor? Porque eu pensei em simplesmente fazer os testes dessa forma: import Bhaskara import pytest b = Bhaskara.Bhaskara() class TestBhaskara: def testa_uma_raiz(self): assert b.calcula_raizes(1, 0, 0) == (1, 0) def testa_duas_raizes(self): assert b.calcula_raizes(1, -5, 6) == (2, 3, 2) def testa_zero_raizes(self): assert b.calcula_raizes(10, 10, 10) == 0 def testa_raiz_negativa(self): assert b.calcula_raizes(10, 20, 10) == (1, -1) Há algum problema em fazer dessa maneira? Afinal, os testes funcionam igualmente. Agradeço pela atenção, ficarei grato se puder esclarecer isso para mim.