Introducere în Unittest

Introducere în testarea în Python

Alexander Levin

Data Scientist

Recapitulare OOP

  • OOP - paradigmă de programare bazată pe obiecte și clase.
  • Clasă - un șablon al unui obiect, care poate conține metode și atribute.
  • Metodă - o funcție sau procedură care aparține unei clase.
  • Atribut - o variabilă care aparține unei clase.
  • Obiect - o instanță a unei clase.
  • Exemplu de clasă Python:
    class Rectangle:
      # Constructor of Rectangle
      def __init__(self, a, b):
          self.a = a
          self.b = b
      # Area method
      def get_area(self):
          return self.a * self.b
    # Usage example
    r = Rectangle(4, 5)
    print(r.get_area())
    
>> 20
Introducere în testarea în Python

Moștenire în OOP

  • Clasele pot moșteni proprietăți din alte clase.
  • Plasați clasa părinte în paranteze după numele noii clase.
    class RedRectangle(Rectangle):
      self.color = 'red'
    
Introducere în testarea în Python

Ce este unittest

  • unittest - framework Python integrat pentru automatizarea testelor (instalat împreună cu Python).
  • unittest - nu este destinat doar testelor unitare.
  • Bazat pe OOP: fiecare caz de test este o clasă, iar fiecare test este o metodă.
  • Caz de test - o instanță de testare.
  • Suită de teste - o colecție de cazuri de test.
Introducere în testarea în Python

unittest vs. pytest

unittest

  • Bazat pe OOP - necesită crearea de clase de test)
  • Integrat (instalat cu distribuția Python)
  • Mai multe metode de aserțiune

pytest

  • Bazat pe funcții - caută scripturi și funcții care încep cu test_
  • Pachet terț (trebuie instalat separat față de distribuția Python)

  • Mai puține metode de aserțiune

Introducere în testarea în Python

Cum se creează un test cu unittest

Test al operatorului de exponențiere:

import unittest

# Declararea clasei TestCase
class TestSquared(unittest.TestCase):
    # Definirea testului
    def test_negative(self):
        self.assertEqual((-3) ** 2, 9)
Introducere în testarea în Python

Metode de aserțiune

  • .assertEqual(), .assertNotEqual()
  • .assertTrue(), .assertFalse()
  • .assertIs(), .assertIsNone()
  • .assertIsInstance(), .assertIn()
  • .assertRaises()
  • Multe altele
Introducere în testarea în Python

Rezumat

  • unittest - framework Python integrat, bazat pe OOP, pentru automatizarea testelor
  • Caz de test - o instanță de testare în unittest
  • Crearea unui test:
    1. Declarați o clasă care moștenește din unittest.TestCase
    2. Definiți funcțiile de test
  • Metode de aserțiune
Introducere în testarea în Python

Să exersăm!

Introducere în testarea în Python

Preparing Video For Download...