Conținut curs
Gestionarea erorilor și excepțiilor
0/1
Python Intermediar
Despre lecție

Obiective

  1. Introducere în testarea unitară
  2. Testarea unitară cu biblioteca unittest
  3. Testarea unitară cu biblioteca pytest
  4. 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:

python
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.:

python
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:

python
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:

python
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:

python
import my_module

Apoi, definiți funcții de testare pentru funcțiile dvs., numele funcțiilor de testare trebuie să înceapă cu test_:

python
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:

python
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:

python
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:

python
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:

python
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.