Découvrir unittest

Introduction aux tests en Python

Alexander Levin

Data Scientist

Rappel sur la POO

  • POO – paradigme de programmation basé sur les objets et les classes.
  • Classe – modèle d'objet pouvant contenir des méthodes et des attributs.
  • Méthode – fonction ou procédure appartenant à une classe.
  • Attribut – variable appartenant à une classe.
  • Objet – instance d'une classe.
  • Exemple de classe 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
Introduction aux tests en Python

Héritage en POO

  • Les classes peuvent hériter des propriétés d'autres classes.
  • Placez la classe parente entre parenthèses après le nom de la nouvelle classe.
    class RedRectangle(Rectangle):
      self.color = 'red'
    
Introduction aux tests en Python

Qu'est-ce que unittest

  • unittest – cadre Python intégré pour l'automatisation des tests (installé avec Python).
  • unittestpas seulement pour les tests unitaires.
  • Basé sur la POO : chaque cas de test est une classe, chaque test est une méthode.
  • Cas de test – instance de mise à l'essai.
  • Suite de tests – ensemble de cas de test.
Introduction aux tests en Python

unittest vs pytest

unittest

  • Basé sur la POO – nécessite de créer des classes de test)
  • Intégré (installé avec la distribution Python)
  • Plus de méthodes d'assertion

pytest

  • Basé sur les fonctions – cherche les scripts et fonctions commençant par test_
  • Forfait tiers (à installer séparément de la distribution Python)

  • Moins de méthodes d'assertion

Introduction aux tests en Python

Créer un test avec unittest

Test de l'opérateur d'exponentiation :

import unittest

# Declaring the TestCase class
class TestSquared(unittest.TestCase):
    # Defining the test
    def test_negative(self):
        self.assertEqual((-3) ** 2, 9)
Introduction aux tests en Python

Méthodes d'assertion

  • .assertEqual(), .assertNotEqual()
  • .assertTrue(), .assertFalse()
  • .assertIs(), .assertIsNone()
  • .assertIsInstance(), .assertIn()
  • .assertRaises()
  • Et bien d'autres
Introduction aux tests en Python

Sommaire

  • unittest – cadre Python intégré, basé sur la POO, pour l'automatisation des tests
  • Cas de test – instance de test dans unittest
  • Pour créer un test :
    1. Déclarer une classe héritant de unittest.TestCase
    2. Définir des fonctions de test
  • Méthodes d'assertion
Introduction aux tests en Python

Passons à la pratique !

Introduction aux tests en Python

Preparing Video For Download...