Tarkvara Arendusprotsess Programmeerimine Multimeedia

Testimine (Testing)

Miks testida?

Testimise tasemed

pytest raamistik

Pythonis on levinuim testimisraamistik pytest. See on lihtne ja võimas.

def test_addition():
    assert 1 + 2 == 3
        

assert lause

assert kontrollib, kas sellele järgnev tingimus on tõene. Kui on väär, siis test ebaõnnestub.

assert calculate_area(2, 5) == 10
assert "Python" in "Hello Python world"
        

Testide käivitamine

Käsurealt käivitamiseks sisestatakse käsk:

pytest

See otsib üles kõik test_*.py failid ja käivitab seal olevad testid. Tulemustes märgitakse:

Erandite testimine

Mõnikord on vaja kontrollida, kas funktsioon viskab vea vale sisendi korral.

import pytest

def test_zero_division():
    with pytest.raises(ZeroDivisionError):
        1 / 0
        

Testide grupeerimine

Teste saab grupeerida klassidesse:

class TestCalculator:
    def test_add(self):
        assert 1 + 1 == 2

    def test_sub(self):
        assert 5 - 2 == 3
        

Koodi kaetus (Code Coverage)

Test-Driven Development (TDD)

  1. Red: Kirjutatakse test, mis ebaõnnestub (sest funktsionaalsust pole veel).
  2. Green: Kirjutatakse minimaalne kood, et test läbi läheks.
  3. Refactor: Parandatakse koodi kvaliteeti, tagades, et testid jäävad läbituks.

Kokkuvõte