Enhetstestning med pytest

Introduktion till testning i Python

Alexander Levin

Data Scientist

Vad är ett enhetstest

Enhet – den minsta testbara delen av koden.

  • Exempel på enheter: funktioner, metoder, klasser, moduler m.m.

$$

Enhetstestning – en metod för mjukvarutestning.

  • Enhetstestning gör det möjligt att granska om en enhet fungerar korrekt.

$$

Testfall – en uppsättning indata och förväntade utdata för en enhet.

  • Testfallet sammanfattar ett specifikt delproblem.
Introduktion till testning i Python

Varför använda enhetstester

Enhetstester – utgör grunden för att testa "helheten" i ett program.

Användningsfall:

  • När buggar hittas
  • Under utveckling
  • Efter implementerade ändringar
Introduktion till testning i Python

Hur man skapar ett enhetstest

Steg för steg:

  1. Bestäm vilka enheter som ska testas
  2. Definiera testfall (den kreativa delen):
    • "Vilka möjliga utfall kan enheten ge?"
    • "På vilka sätt kan enheten användas?"
    • "Hur ska enheten bete sig i alla dessa fall?"
  3. Skriv kod för varje testfall
  4. Kör testerna och analysera resultaten
Introduktion till testning i Python

Skapa ett enhetstest: exempel

Enhet att testa:

# Function for a sum of elements
def sum_of_arr(array:list) -> int:
    return sum(array)

Testfall:

  1. Indata är en lista med tal (som förväntat) – ska returnera sum
  2. Indata är en tom lista – ska returnera 0
  3. Indata är en lista med ett number – ska returnera det number
Introduktion till testning i Python

Skapa ett enhetstest: kod

# Test Case 1: regular array
def test_regular():
    assert sum_of_arr([1, 2, 3]) == 6
    assert sum_of_arr([100, 150]) == 250
# Test Case 2: empty list
def test_empty():
    assert sum_of_arr([]) == 0
# Test Case 3: one number
def test_one_number():
    assert sum_of_arr([10]) == 10
    assert sum_of_arr([0]) == 0
Introduktion till testning i Python

Sammanfattning

Enhetstest – ett test som verifierar att en enhet fungerar som förväntat.

Testfall – indata och utdata som sammanfattar ett specifikt delproblem.

Användningsfall:

  • När buggar hittas
  • Under utveckling
  • Efter implementerade ändringar

Definiera testfall – kräver kreativitet.

Introduktion till testning i Python

Nu kör vi en övning!

Introduktion till testning i Python

Preparing Video For Download...