کد بوی 203 – اطلاعات تست بی ربط

داده های نامربوط توجه خواننده را منحرف می کند
TL;DR: اطلاعات غیر ضروری را به ادعاهای خود اضافه نکنید
-
خوانایی
-
قابلیت نگهداری
-
داده های نامربوط را حذف کنید
-
فقط اظهارات لازم را بگذارید
تست ها باید حداقل باشند و از الگوی SetUp/Exercise/Assert پیروی کنند
اشتباه
def test_formula_1_race():
# Setup
racers = [
{"name": "Lewis Hamilton", "team": "Mercedes", "starting_position": 1, "car_color": "Silver", "car_model": "W12"},
{"name": "Max Verstappen", "team": "Red Bull", "starting_position": 2, "car_color": "Red Bull", "car_model": "RB16B"},
{"name": "Sergio Perez", "team": "Red Bull", "starting_position": 3, "car_color": "Red Bull", "car_model": "RB16B"},
{"name": "Lando Norris", "team": "McLaren", "starting_position": 4, "car_color": "Papaya Orange", "car_model": "MCL35M"},
{"name": "Valtteri Bottas", "team": "Mercedes", "starting_position": 5, "car_color": "Silver", "car_model": "W12"},
]
# Exercise
winner = simulate_formula_1_race(racers)
# Test
assert winner == "Lewis Hamilton"
# This is all irrelevant to winner asserting
assert racers[0]["car_color"] == "Silver"
assert racers[1]["car_color"] == "Red Bull"
assert racers[2]["car_color"] == "Red Bull"
assert racers[3]["car_color"] == "Papaya Orange"
assert racers[4]["car_color"] == "Silver"
assert racers[0]["car_model"] == "W12"
assert racers[1]["car_model"] == "RB16B"
assert racers[2]["car_model"] == "RB16B"
assert racers[3]["car_model"] == "MCL35M"
assert racers[4]["car_model"] == "W12"
درست
def test_formula_1_race():
# Setup
racers = [
{"name": "Lewis Hamilton", "starting_position": 1},
{"name": "Max Verstappen", "starting_position": 2},
{"name": "Sergio Perez", "starting_position": 3},
{"name": "Lando Norris", "starting_position": 4},
{"name": "Valtteri Bottas" "starting_position": 5},
]
# Exercise
winner = simulate_formula_1_race(racers)
# Test
assert winner == "Lewis Hamilton"
ما می توانیم برخی از الگوها را در اظهارات غیر ضروری پیدا کنیم.
تست ها باید نثر باشد. همیشه روی خواننده تمرکز کنید. شاید یکی دو ماه دیگر شما باشید.
https://maximilianocontieri.com/code-smell-76-generic-assertions
کد بوی نظر من است.
عکس ایوان دمیکولی در Unsplash
اقدامات معقولی را برای آزمایش، مستندسازی و در غیر این صورت جلب توجه به مفروضات ساخته شده در هر ماژول و روال انجام دهید.
دانیل رید
https://maximilianocontieri.com/software-engineering-great-quotes
این مقاله بخشی از سری CodeSmell است.
https://maximilianocontieri.com/how-to-find-the-stinky-parts-of-your-code