Testmarkers toepassen

Introductie tot testen in Python

Alexander Levin

Data Scientist

Overzicht van testmarkers

  • Use case 1: sla de test over als de voorwaarde geldt
  • Use case 2: deze test mag falen

  • Testmarker - een tag (marker) voor een test in de pytest-bibliotheek

  • Hiermee kun je gedrag voor specifieke tests instellen door ze te taggen (markeren)
Introductie tot testen in Python

Markersyntax

  • Decorator - een ontwerppatroon in Python waarmee je nieuwe functionaliteit aan een bestaand object toevoegt zonder de structuur te wijzigen
  • Syntax van testmarkers begint met de @pytest.mark-decorator:
import pytest

def get_length(string):
    return len(string)

# De syntax van testmarkers
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Introductie tot testen in Python

Skip- en skipif-markers

  • Gebruik @pytest.mark.skip - als je een test altijd wilt overslaan
  • Gebruik @pytest.mark.skipif - als je een test wilt overslaan wanneer een voorwaarde True is
Introductie tot testen in Python

Voorbeeld skip-marker

  • Gebruik @pytest.mark.skip - als je een test onbeperkt wilt overslaan.
import pytest
def get_length(string):
    return len(string)

# Voorbeeld van skip-marker
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Introductie tot testen in Python

Voorbeeld skip-marker: output

  • Output met een overgeslagen test:

voorbeeld van pytest.mark.skip

Introductie tot testen in Python

Voorbeeld skipif-marker

  • Gebruik @pytest.mark.skipif - als je een test wilt overslaan wanneer de voorwaarde True is.
import pytest
def get_length(string):
    return len(string)

# Voorbeeld van skipif-marker
@pytest.mark.skipif('2 * 2 == 5')
def test_get_len():
    assert get_length('abc') == 3
Introductie tot testen in Python

Skipif-marker: output

  • Output van een conditioneel overgeslagen test:

voorbeeld van pytest.mark.skipif

Introductie tot testen in Python

Xfail-marker

  • Gebruik @pytest.mark.xfail - als je verwacht dat een test faalt
import pytest

def gen_sequence(n):
    return list(range(1, n+1))

# Voorbeeld van xfail-marker
@pytest.mark.xfail
def test_gen_seq():
    assert gen_sequence(-1)
Introductie tot testen in Python

Xfail-marker: output

  • Output van een test die naar verwachting faalt:

voorbeeld van pytest.mark.xfail

Introductie tot testen in Python

Samenvatting

Testmarker:

  • Is een attribuut van een test in de pytest-bibliotheek
  • Wordt gebruikt om gedrag voor specifieke tests aan te geven
  • Heeft syntax die begint met @pytest.mark.name_of_the_marker
  • Standaardmarkeringen in pytest:
    • @pytest.mark.xfail
    • @pytest.mark.skip
    • @pytest.mark.skipif
Introductie tot testen in Python

Laten we oefenen!

Introductie tot testen in Python

Preparing Video For Download...