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

برای جهت دهی این تغییرات بهترین شیوه استفاده از تست ها هستن.

 

در این قسمت ما میخوایم که یک تست واحد ساده بنویسیم.

متدی که ما داریم فقط آیدی کاربر رو میگیره و برمیگردونه:

کد ساده هست و نیاز به توضیح نداره. بریم سمت تست:

همونطور که مشخصه ما ابتدا یک نوع از کنترلر رو ایجاد کردیم.

سپس یک identity ساختیم که در اصل همون یوزرنیم ما هستش. در خط های زیر که کامنت شده ما امدیم و فیلدهای بیشتری رو اضاف کردیم که برای کمک به شما نوشته شده و در این تست نیاز نیست.

حالا باید کدها رو به کنترلر بفرستیم برای همین منظور از یک ClaimsPrincipal استفاده کردیم تا یوزر رو بهش پاس بدیم.

بعد از پاس داده یوزر به ClaimsPrincipal نوبت این میشه که حالا کنترلر رو پر کنیم. کنترلر خاصیتی داره به اسم ControllerContext که توی اون HttpContext رو باید با یوزرمون پر کنیم. به این صورت درواقع عمل لاگین کردن یوزر و پرشدن یوزرنیم در کوکی سایت یا سشن سایت رو شبیه سازی کردیم.

مابقی کار ساده اس. ما متد Index رو صدا زدی و نتیجه رو بررسی کردیم که نوع درستی برگشت داده شده یا خیر.

 

 

بروزرسانی:

روش بالا در .net Framework در DefaultHttpContext با خطا مواجه میشه. برای رفع این مشکل از کد زیر استفاده کنید :

 

 

شیوه ی دوم :

 

 

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

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