آزمون یک تابع کوچک با آزمون همکاری چند تابع فرق داره. ممکنه هر بخش بهتنهایی درست باشه ولی ترتیب اتصالشون اشتباه نوشته بشه. تست خط لوله از ورودی اولیه شروع میکنه و خروجی نهایی رو با قرارداد کامل مقایسه میکنه. برای پیداکردن علت شکست هم هنوز تستهای کوچک هر بخش مفیدن؛ این دو نوع بررسی مکمل هم هستن.
مثال، متنهای عددی رو تبدیل و بعد جمع میکنه. سؤال اصلی بعد از جمع، تخفیف رو هم اعمال میکنه. خطای رایج اعمال درصد به یک عضو یا کمکردن خود عدد درصد بهجای سهمی از جمعه. مسیر داده رو مرحلهبهمرحله دنبال کن: ابتدا تبدیلها، بعد جمع و در آخر ضرب در سهم باقیمانده. چون عددهای مثال سادهاند، انتظار نهایی رو میتونی مستقل دستی حساب کنی. اینجا هیچ خطای تبدیل یا ورودی خارج بازه نداریم؛ هدف فقط درک ترتیب همکاری تابعهاست. نتیجه عددی میتونه به شکل float نمایش داده بشه و همچنان با انتظار عددی برابر باشه.
✍️ مثال حلشده:
def parse_numbers(texts):
return [int(text) for text in texts]
def text_total(texts):
return sum(parse_numbers(texts))
assert text_total(["4", "6"]) == 10
حالا نوبت توئه: pipeline ابتدا متنهای ["40","60"] را به عدد تبدیل میکند، جمع میزند و با تخفیف ۲۰ درصد، total*(1-percent/100) برمیگرداند. خروجی نهایی چیست؟ ورودیها معتبرند و تخفیف روی کل جمع اعمال میشود؛ درصد را با مبلغ ثابت اشتباه نگیر.
فعالیت شما
pipeline ابتدا متنهای ["40","60"] را به عدد تبدیل میکند، جمع میزند و با تخفیف ۲۰ درصد، total*(1-percent/100) برمیگرداند. خروجی نهایی چیست؟ ورودیها معتبرند و تخفیف روی کل جمع اعمال میشود؛ درصد را با مبلغ ثابت اشتباه نگیر.