mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-05-13 13:27:58 +00:00
test: add characterization tests as safety net
This commit is contained in:
parent
e9eb09ed9b
commit
229dc61b8b
@ -1,16 +1,64 @@
|
|||||||
# -*- coding: utf-8 -*-
|
from gilded_rose import GildedRose, Item
|
||||||
import unittest
|
|
||||||
|
|
||||||
from gilded_rose import Item, GildedRose
|
class TestGildedRose:
|
||||||
|
# --- NORMAL ITEMS ---
|
||||||
|
def test_normal_item_quality_decreases_by_1_before_sell_date(self):
|
||||||
|
items = [Item("Normal Item", sell_in=10, quality=20)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 19
|
||||||
|
assert items[0].sell_in == 9
|
||||||
|
|
||||||
|
def test_normal_item_quality_decreases_by_2_after_sell_date(self):
|
||||||
|
items = [Item("Normal Item", sell_in=0, quality=20)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 18
|
||||||
|
|
||||||
class GildedRoseTest(unittest.TestCase):
|
# --- AGED BRIE ---
|
||||||
def test_foo(self):
|
def test_aged_brie_increases_quality_over_time(self):
|
||||||
items = [Item("foo", 0, 0)]
|
items = [Item("Aged Brie", sell_in=5, quality=10)]
|
||||||
gilded_rose = GildedRose(items)
|
GildedRose(items).update_quality()
|
||||||
gilded_rose.update_quality()
|
assert items[0].quality == 11
|
||||||
self.assertEqual("fixme", items[0].name)
|
|
||||||
|
|
||||||
|
def test_aged_brie_increases_quality_double_after_sell_in(self):
|
||||||
|
items = [Item("Aged Brie", sell_in=0, quality=10)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 12
|
||||||
|
|
||||||
if __name__ == '__main__':
|
# --- SULFURAS ---
|
||||||
unittest.main()
|
def test_sulfuras_never_changes(self):
|
||||||
|
items = [Item("Sulfuras, Hand of Ragnaros", sell_in=5, quality=80)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 80
|
||||||
|
assert items[0].sell_in == 5
|
||||||
|
|
||||||
|
def test_sulfuras_remains_80_after_sell_in(self):
|
||||||
|
items = [Item("Sulfuras, Hand of Ragnaros", sell_in=-1, quality=80)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 80
|
||||||
|
|
||||||
|
# --- BACKSTAGE PASSES ---
|
||||||
|
def test_backstage_pass_increases_by_2_when_10_days_or_less(self):
|
||||||
|
items = [Item("Backstage passes to a TAFKAL80ETC concert", sell_in=10, quality=20)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 22
|
||||||
|
|
||||||
|
def test_backstage_pass_increases_by_3_when_5_days_or_less(self):
|
||||||
|
items = [Item("Backstage passes to a TAFKAL80ETC concert", sell_in=5, quality=20)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 23
|
||||||
|
|
||||||
|
def test_backstage_pass_quality_drops_to_zero_after_concert(self):
|
||||||
|
items = [Item("Backstage passes to a TAFKAL80ETC concert", sell_in=0, quality=20)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 0
|
||||||
|
|
||||||
|
# --- LÍMITES (EDGE CASES) ---
|
||||||
|
def test_quality_never_goes_below_zero(self):
|
||||||
|
items = [Item("Normal Item", sell_in=5, quality=0)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 0
|
||||||
|
|
||||||
|
def test_quality_never_exceeds_50(self):
|
||||||
|
items = [Item("Aged Brie", sell_in=5, quality=50)]
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
assert items[0].quality == 50
|
||||||
Loading…
Reference in New Issue
Block a user