مشکل در url ماک شده و واقعی

پرسیده شده
فعالیت 1024 روز پیش
دیده شده 701 بار
0

سلام
در اینجا شما url که react قرار بره از اون داده هایی بگیره به عنوان props به کامپونت  Post.jsx در داخل Index.jsx دادید و اون url ماک شده هستش.درصورتیکه در پروژه واقعی ما به url سرور api درخواست ارسال میکنه.مثلا یه درخواست    get  به  https://api.my-ap/v1/post   میفرستیم یا در حالت development به localhost:5000 که پورت اون با پورت react فرق داره و سرور ماک ما روی پورت react هستش.در اینجا ما مشکل داریم
ما باید در تست , url بدیم  به تابعی که در کامپونت هستش و  به url درخواست ارسال می کنه و داده های میگره .ولی از طریق بالا  دچار مشکل میشیم

 

فایل پیوست

0
حذف شده

سلام

این مورد رو به روش های متفاوتی میشه حل کرد

یکی از بهترین راه حل ها استفاده کردن از env هست

اون بخش متغییر رو داخل env قرار میدیم (domain name + port و ... ) در این صورت میشه در محیط های مختلف به آدرس های مختلفی درخواست رو ارسال کرد

 

اگر در شرایطی هستید که این امکان رو ندارید بفرمایید که در موردش بیشتر صحبت بکنیم

 

فایل پیوست

مجتبی سوری

توسط

مجتبی سوری

23 تیر 00

0
حذف شده

من یک پروژه react تستی با typescript دارم که داخلش یک کامپونت داره 
من برای پروژه تست هم نوشتم 
کار این کامپونت اینکه ,  اول کار  یک دکمه  وجود داره وقتی که روش کلیک میشه یک تعداد post از سایت مورد نظر میگره و در یک جدول نمایش میده و بعد هر ردیف جدول یک دکمه داره , که با کلیک کردنش اطلاعات پست نمایش میده و یک دکمه داخلش هست , که کامنت های اون پست داخل یک جدول نمایش میده
سایت مورد نظر سایت https://jsonplaceholder.typicode.com/
اولا تست هایی که نوشتم کامل هستش؟برای mock کردن api از پکیج nock استفاده کردم
به این تست ها , تست ها unit میگن؟
در react تست های integration و end-to-end در کجاها داریم و  چطوری مینویسن؟
من شنیدم که یکسری ها از تست به این شکل هستش که مرورگر خودکار باز میشه و روی تگ ها کلیک میکنه و کارهایی انجام میده به این تست ها همون  end-to-end میگن؟چطوری نوشته میشن
آیا برای جاهایی که داریم redux  یا یک پکیجی config میکنیم باید تست بنوسیم؟
من اول تست نوشتم , تست من fail شد و بعدش کد داخل کامپونت نوشتم که تست success شد.آیا این روش در react  درست هست؟

فایل پیوست

محسن محمدخانی

توسط

محسن محمدخانی

3 مرداد 00

0
حذف شده

سلام

در مورد کامل بودن تست ها این مورد کاملا نسبی هست و هیچ وقت تعداد تست های نوشته شده نباید ملاک قرار بگیره و با توجه به شرایط باید به این موضوع نگاه کرد. هر تستی که اضافه می کنید باید ببینید چه ارزشی رو به پروژه اضافه میکنی و اینکه آیا اصلا ارزش وقت گذاشتن داره یا نه؟ اگر جواب مثبت بود میتونی اون تست رو بنویسی و اضافه بکنی در غیر این صورت نباشد اون تست وجود داشته باشه.

 

در مورد نوع تست ها با توجه به دیدگاه ها و تفکرات مختلف میشه اسم گذاری های متفاوتی رو داشته باشیم و ممکن از دیدگاه برخی یک تست unit یا integration باشه که این برمیگرده به اینکه isolation رو در تست چی تعریف می کنن! خود این موضوع خیلی مفصل و نمیشه الان اینجا کامل به اون پرداخت!

تست های end-to-end در یک سطح بالاتر از react قرار میگیره و در این تست ها کلا اهمیتی نداره که ui رو با چه ابزاری پیاده سازی کرده باشیم. در تست های end-to-end  کدهای فرانت و بک اند رو با هم به صورت کامل تست میشه . که برای نوشتن این نوع از تست ها هم ابزارهای زیادی وجود داره از جمله Cypress ، TestCafe، WebdriverJs و ... که اون بحثی که در مورد اینکه تست ها در محیط واقعی مرورگر اجرا میشه معمولا اکثر ابزارها این قابلیت رو دارند و بیشتر اونها از selenium استفاده میکنند

 

برای اینکه برای مواردی مثل redux و config آیا نیازی هست تست بنویسیم! این موضوع برمیگرده به همون بخش اولی که گفتم اگر ارزشی برات ایجاد میکنه میتونی بنویسی!  معمولا زمانی که تست integration مینویسیم بسیاری از این موارد مورد تست قرار میگیرن. اگر بخواید میشه برای توابی که در redux استفاده میکنید تست unit بنویسید (بازم تاکید میکنم اگر باید بررسی بکنید آیا نیازی هست یا نه)

 

بخش آخر سوالتون در مورد اینکه اول تست بنویسیم و بعد اون رو پاس بکنیم این سبک برمیگرده به TDD که البته یک مرحله refactoring رو هم باید به اون اضافه کرد. استفاده کردن از این مورد مشکلی نداره

 

فایل پیوست

مجتبی سوری

توسط

مجتبی سوری

7 مرداد 00

جلسه تست ارسال درخواست api و استفاده از fireEvent