Introduktion till unittest

Introduktion till testning i Python

Alexander Levin

Data Scientist

Repetition av OOP

  • OOP – programmeringsparadigm baserat på objekt och klasser.
  • Klass – en mall för ett objekt som kan innehålla metoder och attribut.
  • Metod – en funktion eller procedur som tillhör en klass.
  • Attribut – en variabel som tillhör en klass.
  • Objekt – en instans av en klass.
  • Exempel på en Python-klass:
    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
Introduktion till testning i Python

Arv i OOP

  • Klasser kan ärva egenskaper från andra klasser.
  • Ange föräldraklassen inom parentes efter den nya klassens namn.
    class RedRectangle(Rectangle):
      self.color = 'red'
    
Introduktion till testning i Python

Vad är unittest?

  • unittest – inbyggt Python-ramverk för testautomatisering (installeras med Python).
  • unittest – används inte bara för enhetstester.
  • OOP-baserat: varje testfall är en klass och varje test är en metod.
  • Testfall – en instans av testning.
  • Testsvit – en samling testfall.
Introduktion till testning i Python

unittest vs. pytest

unittest

  • OOP-baserat – kräver att testklasser skapas)
  • Inbyggt (installeras med Python-distributionen)
  • Fler assertion-metoder

pytest

  • Funktionsbaserat – söker efter skript och funktioner som börjar med test_
  • Tredjepartspaket (måste installeras separat från Python-distributionen)

  • Färre assertion-metoder

Introduktion till testning i Python

Skapa ett test med unittest

Test av potensoperatorn:

import unittest

# Declaring the TestCase class
class TestSquared(unittest.TestCase):
    # Defining the test
    def test_negative(self):
        self.assertEqual((-3) ** 2, 9)
Introduktion till testning i Python

Assertion-metoder

  • .assertEqual(), .assertNotEqual()
  • .assertTrue(), .assertFalse()
  • .assertIs(), .assertIsNone()
  • .assertIsInstance(), .assertIn()
  • .assertRaises()
  • Många fler
Introduktion till testning i Python

Sammanfattning

  • unittest – OOP-baserat inbyggt Python-ramverk för testautomatisering
  • Testfall – en testinstans i unittest
  • Skapa ett test:
    1. Deklarera en klass som ärver från unittest.TestCase
    2. Definiera testfunktioner
  • Assertion-metoder
Introduktion till testning i Python

Nu kör vi en övning!

Introduktion till testning i Python

Preparing Video For Download...