Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:informacios_rendszerek_integralasa:tdd_pelda

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Következő változat
Előző változat
tanszek:oktatas:informacios_rendszerek_integralasa:tdd_pelda [2024/02/25 21:46]
knehez
tanszek:oktatas:informacios_rendszerek_integralasa:tdd_pelda [2024/02/25 22:32] (aktuális)
knehez [Teszt írása]
Sor 1: Sor 1:
-=== Teszt vezérelt fejlesztés ===+===== Teszt vezérelt fejlesztés ​=====
  
-Klónozzuk a teszt projektet+Hozzunk létre egy könyvtárat és lépjünk bele
- +    mkdir tdd 
-    ​git clone https://​github.com/​knehez/​tdd.git+    ​cd tdd
 Hozzunk létre egy virtuális környezetet:​ Hozzunk létre egy virtuális környezetet:​
     python -m virtualenv .venv     python -m virtualenv .venv
-Ha nincs telepítve a //​virtualenv//​ csomag akkor futtasuk:+Ha nincs telepítve a //​virtualenv//​ csomag akkor futtassuk:
     pip install virtualenv     pip install virtualenv
 Lépjünk be a virtualis környezetbe:​ Lépjünk be a virtualis környezetbe:​
     .\.venv\Scripts\activate     .\.venv\Scripts\activate
 A prompt előtt innentől kezdve (.venv) szöveg íródik ki. A prompt előtt innentől kezdve (.venv) szöveg íródik ki.
 +Telepítsük a //pytest// csomagot:
 +    pip install pytest
 +A teszt indítása:
 +    python -m pytest tests
 +Minden könyvtárban keresi a test_*.py és a *_test.py fájlokat, ezeket tekinti teszteknek.
 +===== Teszt írása ======
 +
 +hozzunk létre egy //​test_basic.py//​ fájlt a teszt könyvtárban a következő tartalommal:​
 +
 +<sxh python>
 +def test_always_passes():​
 +    assert True
 +
 +def test_always_fails():​
 +    assert False
 +</​sxh>​
 +
 +Majd futtassuk a tesztet:
 +    python -m pytest tests
 +
 +Hozzunk létre egy másik teszt fájlt, test_fixture.py:​
 +
 +<sxh python>
 +import pytest
 +
 +@pytest.fixture
 +def example_fixture():​
 +    return 1
 +
 +def test_with_fixture(example_fixture):​
 +    assert example_fixture == 1
 +</​sxh>​
 +
 +A teszt futtatása után az alábbi eredményt kapjuk:
 +
 +{{:​tanszek:​oktatas:​informacios_rendszerek_integralasa:​pasted:​20240225-220731.png}}
 +
 +Javítsuk ki a tesztet és gihub repositoryba töltsük fel.
 +
 +Hozzunk létre egy app alkönyvtárat a gyökérben és üres //​__init__.py//​ fájlt és egy //​data_formatter.py//​ fájlt, a //​tests/​test_data_formatter.py//​.
 +
 +{{:​tanszek:​oktatas:​informacios_rendszerek_integralasa:​pasted:​20240225-222912.png}}
 +
 +A test_data_formatter.py tartalma legyen:
 +
 +<sxh python>
 +from app.data_formatter import format_data_for_display
 +def test_format_data_for_display():​
 +    people = [
 +        {
 +            "​given_name":​ "​Karoly",​
 +            "​family_name":​ "​Nehez",​
 +            "​title":​ "​Senior Software Engineer",​
 +        },
 +        {
 +            "​given_name":​ "​John",​
 +            "​family_name":​ "​Smith",​
 +            "​title":​ "​Project Manager",​
 +        },
 +    ]
 +
 +    assert format_data_for_display(people) == [
 +        "​Karoly Nehez: Senior Software Engineer",​
 +        "John Smith: Project Manager",​
 +    ]
 +</​sxh>​
 +
 +A data_formatter.py-ben megírjuk az implementációt:​
 +<sxh python>
 +def format_data_for_display(people):​
 +    return [f"​{person['​given_name'​]} {person['​family_name'​]}:​ {person['​title'​]}"​ for person in people]
 +</​sxh>​
 +
 +Futtassuk a tesztet:
 +    python -m pytest tests
tanszek/oktatas/informacios_rendszerek_integralasa/tdd_pelda.1708897581.txt.gz · Utolsó módosítás: 2024/02/25 21:46 szerkesztette: knehez