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

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

 

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

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

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

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

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

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

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

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

 

 

بروزرسانی:

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

 

 

شیوه ی دوم :

 

 

One thought on “اعجوبه ای به نام تست واحد (Unit Test) – گرفتن یوزرنیم

  1. رنک ایرانی says:

    باسلام

    رتبه الکسای ۱۰۰۰ ایران می خواهید؟ به دنبال افزایش بازدید سایت خود هستید؟ صفحه اول گوگل می خواهید؟ به سایت ما سر بزنید.

    تعرفه کاهش تضمینی رتبه الکسا:

    رنک هزار ایران با مبلغ ۸۰۰ هزار تومان
    رنک ۲ هزار ایران با مبلغ ۴۵۰ هزار تومان
    رنک ۳ هزار ایران با مبلغ ۳۵۰ هزار تومان
    رنک ۴ هزار ایران با مبلغ ۲۵۰ هزار تومان
    رنک ۵ هزار ایران با مبلغ ۱۵۰ هزار تومان
    رنک زیر ۱۰ هزار ایران با مبلغ ۸۰ هزار تومان
    رنک زیر ۲۰ هزار ایران با مبلغ ۵۰ هزار تومان
    رنک زیر ۳۰ هزار ایران با مبلغ ۳۰ هزار تومان

    * دریافت مبلغ بعد از رسیدن به رتبه مورد نظر*
    *تضمین نگهداری و ثبات رنک الکسا*
    *بهبود پارامترهای الکسا*

    زمان تحویل: یکماهه

    سیستم افزایش بازدید سایت و بهبود رتبه الکسا
    رنک ایرانی
    https://rankirani.ir

    ایمیل:
    rankirani@yahoo.com

    شماره تلگرام:
    ۰۹۰۳۸۲۷۶۷۰۶

    آی دی تلگرام:
    @rankirani

    آی دی ایتا:
    @rankirani

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

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