چالش این هفته ادامهی چالش هفته پیش میباشد. در این بخش سراغ testable کردن سناریو هفتهی پیش خواهیم رفت.
جهت مشاهدهی چالش هفتهی قبل اینجا کلیک کنید.
پیشزمینه:
شما در شرکت Flight.Com مشغول توسعهی اپلیکیشنی برای فروش بلیت هواپیما هستید. شما پروازهای مختلف را از یک API که توسط شرکت FlightProvider.Com میباشد، گرفته و به کاربران نمایش میدهید. FlightProvider.Com یک API به شما داده است که میتوانید تاریخ پرواز، مبدا و مقصد مورد نظر را داده و لیستی از پروازهایی که در آن روز از مبدا مورد نظر شما به سمت مقصد میروند را به شما بر میگرداند. شما این لیست را به کاربران نمایش داده و کاربران از بین لیست پروازها یکی را انتخاب میکند.
سناریو:
همانطور که در تصویر بالا مشاهده میکنید API شرکت FlightProvider.Com تمامی مسیرهایی که از پاریس شروع شده و به آمستردام ختم میشوند را به شما بر میگرداند. از شما خواسته شده است که پروایدر NewFlightProvider.Ir را به لیست پروایدرهای پرواز اضافه کنید.
صورت مسئله:
سیستم در حال حاضر هیچگونه تست پذیرش(Acceptance test) و تست دومین ندارد.
- شما باید بل از پیادهسازی پروایدر جدید تست پذیرش و تست دومین را برای هر دو پروایدر برای سناریوهای زیر بنویسید.
- برای سناریو دریافت لیست پروازهای تست پذیرش بنویسید؟
- برای سناریو رزرو یک flight یک تست پذیرش بنویسید؟
- دومین مسئله را در حالت رزرو و همچنین لیست پروزاها طراحی و پیادهسازی کنید؟
- فرض کنید این مسئله را بصورت CQRS پیادهسازی کنید. در اینحالت به سوالات بالا پاسخ دهید؟