Obiective
- Introducere în testarea unitară
- Testarea unitară cu biblioteca
unittest - Testarea unitară cu biblioteca
pytest - Exemple practice de testarea funcțiilor în Python
1. Introducere în testarea unitară
Testarea unitară este un proces de verificare a funcționării corecte a părților individuale ale codului sursă, cum ar fi funcțiile sau metodele. Scopul testării unitare este de a izola fiecare unitate de cod și de a verifica dacă funcționează corect în diferite scenarii. Testarea unitară este esențială pentru menținerea calității codului și pentru prevenirea bug-urilor în timpul dezvoltării.
2. Testarea unitară cu biblioteca unittest
unittest este o bibliotecă standard Python pentru testarea unitară a codului. Cu unittest, puteți crea și rula teste pentru funcțiile dvs. într-un mod organizat și sistematic.
Pentru a utiliza unittest, creați un fișier nou, de exemplu test_my_module.py, în care să importați modulul unittest și modulul care conține funcțiile pe care doriți să le testați:
import unittest
import my_module
Apoi, creați o clasă care să moștenească unittest.TestCase și să conțină metode de testare pentru funcțiile dvs.:
class TestMyModuleFunctions(unittest.TestCase):
def test_function_1(self):
# Teste pentru funcția 1
def test_function_2(self):
# Teste pentru funcția 2
În metodele de testare, utilizați aserțiuni pentru a verifica corectitudinea rezultatelor:
self.assertEqual(my_module.function_1(2), 4)
self.assertNotEqual(my_module.function_1(3), 7)
În final, adăugați următorul cod la sfârșitul fișierului pentru a rula testele:
if __name__ == '__main__':
unittest.main()
Pentru a rula testele, executați fișierul test_my_module.py în terminal sau în mediul dvs. de dezvoltare.
3. Testarea unitară cu biblioteca pytest
pytest este o bibliotecă populară și puternică pentru testarea unitară în Python, care nu face parte din biblioteca standard. Pentru a utiliza pytest, trebuie să instalați biblioteca folosind pip:
pip install pytest
Pentru a crea teste cu pytest, creați un fișier nou, de exemplu test_my_module_pytest.py, în care să importați modulul care conține funcțiile pe care doriți să le testați:
import my_module
Apoi, definiți funcții de testare pentru funcțiile dvs., numele funcțiilor de testare trebuie să înceapă cu test_:
def test_function_1():
# Teste pentru funcția 1
def test_function_2():
# Teste pentru funcția 2
În funcțiile de testare, utilizați aserțiuni pentru a verifica corectitudinea rezultatelor:
assert my_module.function_1(2) == 4
assert my_module.function_1(3) != 7
Pentru a rula testele, executați comanda pytest în terminal sau în mediul dvs. de dezvoltare:
pytest test_my_module_pytest.py
4. Exemple practice de testarea funcțiilor în Python
Să presupunem că avem următorul modul, my_module.py, care conține două funcții simple:
def add(a, b):
return a + b
def multiply(a, b):
return a * b
Iată cum să creați teste unitare pentru aceste funcții folosind unittest și pytest.
Testarea cu unittest:
Creațiun fișier nou, de exemplu test_my_module.py, și adăugați următorul cod:
import unittest
import my_module
class TestMyModuleFunctions(unittest.TestCase):
def test_add(self):
self.assertEqual(my_module.add(2, 3), 5)
self.assertEqual(my_module.add(-1, 1), 0)
self.assertEqual(my_module.add(0, 0), 0)
def test_multiply(self):
self.assertEqual(my_module.multiply(2, 3), 6)
self.assertEqual(my_module.multiply(-1, 1), -1)
self.assertEqual(my_module.multiply(0, 5), 0)
if __name__ == '__main__':
unittest.main()
Pentru a rula testele, executați fișierul test_my_module.py în terminal sau în mediul dvs. de dezvoltare.
Testarea cu pytest:
Creați un fișier nou, de exemplu test_my_module_pytest.py, și adăugați următorul cod:
import my_module
def test_add():
assert my_module.add(2, 3) == 5
assert my_module.add(-1, 1) == 0
assert my_module.add(0, 0) == 0
def test_multiply():
assert my_module.multiply(2, 3) == 6
assert my_module.multiply(-1, 1) == -1
assert my_module.multiply(0, 5) == 0
Pentru a rula testele, executați comanda pytest în terminal sau în mediul dvs. de dezvoltare:
pytest test_my_module_pytest.py
În această lecție, am discutat despre conceptele de bază ale testării unitare și am învățat să folosim bibliotecile unittest și pytest pentru a crea și rula teste pentru funcțiile noastre în Python. Testarea unitară este o parte esențială a dezvoltării de software și vă va ajuta să mențineți în timp calitatea și robustețea aplicațiilor dvs. Python.