User Tools

Site Tools


tanszek:oktatas:informacios_rendszerek_integralasa:tdd_pelda

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:informacios_rendszerek_integralasa:tdd_pelda [2024/02/25 22:01] kneheztanszek:oktatas:informacios_rendszerek_integralasa:tdd_pelda [2024/02/25 22:32] (current) – [Teszt írása] knehez
Line 1: Line 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
Line 16: Line 16:
     python -m pytest tests     python -m pytest tests
 Minden könyvtárban keresi a test_*.py és a *_test.py fájlokat, ezeket tekinti teszteknek. 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.1708898475.txt.gz · Last modified: 2024/02/25 22:01 by knehez