برنامه نویسی

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

داده های نامربوط توجه خواننده را منحرف می کند

TL;DR: اطلاعات غیر ضروری را به ادعاهای خود اضافه نکنید

  • خوانایی

  • قابلیت نگهداری

  1. داده های نامربوط را حذف کنید

  2. فقط اظهارات لازم را بگذارید

تست ها باید حداقل باشند و از الگوی 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"  
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

[X] نیمه خود کار

ما می توانیم برخی از الگوها را در اظهارات غیر ضروری پیدا کنیم.

تست ها باید نثر باشد. همیشه روی خواننده تمرکز کنید. شاید یکی دو ماه دیگر شما باشید.

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

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا