Diferència entre revisions de la pàgina «Introducció al testing»
		
		
		
		
		
		
		Salta a la navegació
		Salta a la cerca
		
				
		
		
		
		
		
		
		
		
	
|  (Es crea la pàgina amb «= Primera presa de contacte = == unittest ==  # 00_testing_unittest.py  import unittest    # Funció que volem provar  def suma(a, b):     return a + b    # Classe de...».) | m (→unittest) | ||
| Línia 1: | Línia 1: | ||
| = Primera presa de contacte = | = Primera presa de contacte = | ||
| == unittest == | == unittest == | ||
| + | Codi: | ||
|   # 00_testing_unittest.py |   # 00_testing_unittest.py | ||
|   import unittest |   import unittest | ||
| Línia 25: | Línia 26: | ||
|   if __name__ == '__main__': |   if __name__ == '__main__': | ||
|      unittest.main() |      unittest.main() | ||
| + | Execució de la prova: | ||
| + |  python 00_testing_unittest.py  | ||
| + | Sortida pel terminal: | ||
| + |  .... | ||
| + |  ---------------------------------------------------------------------- | ||
| + |  Ran 4 tests in 0.000s | ||
| + | |||
| + |  OK | ||
| + | |||
| == pytest == | == pytest == | ||
| Heu d'instal·lar ''pytest'' | Heu d'instal·lar ''pytest'' | ||
Revisió del 16:54, 31 març 2025
Primera presa de contacte
unittest
Codi:
# 00_testing_unittest.py
import unittest
# Funció que volem provar
def suma(a, b):
   return a + b
# Classe de tests
class TestSuma(unittest.TestCase):
   def test_suma_positius(self):
       self.assertEqual(suma(2, 3), 5)
   
   def test_suma_negatius(self):
       self.assertEqual(suma(-1, -1), -2)
   
   def test_suma_mixta(self):
       self.assertEqual(suma(5, -3), 2)
   
   def test_suma_zero(self):
       self.assertEqual(suma(0, 0), 0)
# Executar els tests si s'executa directament aquest fitxer
if __name__ == '__main__':
   unittest.main()
Execució de la prova:
python 00_testing_unittest.py
Sortida pel terminal:
.... ---------------------------------------------------------------------- Ran 4 tests in 0.000s OK
pytest
Heu d'instal·lar pytest
pip install pytest
Si sou a Linux cal afegir la ruta de pytest al PATH. Per exemple, afegint al final de l'arxiu .basrc de la carpeta d'usuari (canvieu jordi pel vostre usuari al sistema):
export PATH=$PATH:/home/jordi/.local/bin
Codi d'exemple:
# 01_testing_pytest.py # Funció que volem provar def multiplica(a, b): return a * b # Tests amb pytest (només cal definir funcions que comencin per "test_") def test_multiplica_positius(): assert multiplica(3, 4) == 12 def test_multiplica_negatius(): assert multiplica(-2, -3) == 6 def test_multiplica_mixta(): assert multiplica(5, -2) == -10 def test_multiplica_zero(): assert multiplica(0, 100) == 0
Execució:
pytest 01_testing_pytest.py -v
Sortida pel terminal:
============================= test session starts ============================== platform linux -- Python 3.9.2, pytest-8.3.5, pluggy-1.5.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /media/emmagatzematge/curs2024-2025/dam/testing/codis plugins: anyio-3.3.2 collected 4 items 01_testing_pytest.py::test_multiplica_positius PASSED [ 25%] 01_testing_pytest.py::test_multiplica_negatius PASSED [ 50%] 01_testing_pytest.py::test_multiplica_mixta PASSED [ 75%] 01_testing_pytest.py::test_multiplica_zero PASSED [100%] ============================== 4 passed in 0.03s ===============================

