یک سرور کوچک Express بسازید که مسیر GET /sum?a=...&b=... را دریافت کند و سپس یک تست Integration با Jest و supertest بنویسید که اپلیکیشن را بدون باز کردن پورت واقعی فراخوانی کرده و مقدار جمع را بررسی کند
3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:40 0.0
برای حل این مسئله یک فایل app.js بسازید که اپ Express را تعریف و export کند و در مسیر /sum مقادیر query پارامترهای a و b را خوانده و JSON حاوی نتیجه ({ result: a+b }) برگرداند. برای تست یک فایل با Jest ایجاد کنید و از supertest استفاده کنید تا با request(app).get('/sum').query({a:1,b:2}) پاسخ 200 و بدنه درست را بررسی کنید. نکتهها: اپ را export کنید تا تست بدون listen کردن روی پورت اجرا شود، از async/await برای درخواستها و assertions استفاده کنید و موارد مرزی مثل ورودیهای غیرعددی را هم در تست یا کد در نظر بگیرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته مهم این است که اپ را به صورت ماژول export کنید تا بتوانید با استفاده از supertest بدون listen کردن روی پورت تست را اجرا کنید. در تست از async/await استفاده کنید و با request(app).get('/sum').query({ a: '1', b: '2' }) نتیجه و کد وضعیت 200 را بررسی کنید. برای پایداری کد، ورودیها را اعتبارسنجی کنید و در صورت غیر عدد بودن یا نبودن پارامترها، پاسخ 400 بدهید و این حالتها را هم در تستها پوشش دهید. همچنین به پوشش edge cases مثل ورودیهای غیر عددی یا مقادیر خالی فکر کنید.
گزارش