Slide 44
Slide 44 text
最初にテストから書く
"""tests/test_ticket.py"""
from datetime import date
import pytest
from ticket import get_ticket_price
class TestTicket:
"""ticket.get_ticket_priceモジュールのテストスイート"""
@pytest.mark.parametrize(
("age", "playdate", "expected"),
[
(19, date(2024, 9, 27), 1500), # 基本料金の境界値
(20, date(2024, 9, 27), 2000), # 基本料金の境界値
(19, date(2024, 10, 1), 1300), # 1日
(20, date(2024, 10, 1), 1300), # 1日
(19, date(2024, 10, 2), 1500), # 水曜日
(20, date(2024, 10, 2), 1600), # 水曜日
(19, date(2024, 12, 1), 1000), # 12月1日
(20, date(2024, 12, 1), 1000), # 12月1日
(19, date(2025, 1, 1), 1300), # 1日かつ水曜日
(20, date(2025, 1, 1), 1300), # 1日かつ水曜日
(19, date(2027, 12, 1), 1000), # 12月1日かつ水曜日
(20, date(2027, 12, 1), 1000), # 12月1日かつ水曜日
]
)
def test_ticket_price(self, age, playdate, expected):
"""年齢と日付の組合せによる入場料の算出結果を検証"""
assert get_ticket_price(age=age, playdate=playdate) == expected
43