کاربرد UnitTest چیست؟

ساخت وبلاگ

اگر یک برنامه به صورت تیمی نوشته شود در هر مرحله نیاز است پا به پای برنامه نویس تیم تست کد های مربوط به unit test را نوشته و نرم افزار را تست کنند.

مزیت وجود unit test این است که هر چه برنامه توسعه پیدا کند و یا کد ها تغییر کنند باز هم تست های قبلی می تواند انجام شود. این یعنی اگر با توسعه قسمتی از برنامه قسمت های قبلی خطایی پیدا کند تنها با زدن دکمه تست می توان خطاها را بررسی و پیدا کرد.

اما کد های unit test  چه کد هایی هستند؟

به زبان ساده، تصور کنید یک تابع دارید که قرار است تاریخ  را بگیرد و فرمت آنرا چک کند در صورتی که فرمت تاریخ صحیح نبود خطایی به برنامه نویس داده شود نه کاربر!!!!

کار تیم برنامه نویسی مربوط به تست نرم افزار از همینجا شروع می شود، این تیم باید موارد زیر را برای همین تابع چک کنند.

مقدار وارد شده null  نباشد

مقدار وارد شده طولی برابر با 10 داشته باشد

مقدار وارد شده باید فرمت 4 کاراکتر سپس / و  2 کاراکتر  و / و  2 کاراکتر انتهایی را رعایت کرده باشد  (0000/00/00) 

خب حالا چطوری این بررسی ها انجام شود؟؟؟؟

فرض کنید برنامه نویس به سادگی کد زیر را نوشته است 

 public bool chekDate(string date)
       {
           return true;
       }

در این کد هر ورودی بگیرد فرمت را صحیح اعلام میکند! تیم تست برای اینکه به برنامه نویس اجازه چنین اشتباهی را ندهد، به پروژه موجود یک پروژه اضافه میکند و نوع آنرا UnitTest انتخاب میکند و در رفرنس ها پروژ قبلی را اضافه می کنیم ( پروژه قبلی mohammad )  نام دارد.

در پروژه جدید  در کلاس UnitTest1 متد های زیر یا پیاده سازی میکند

  [TestMethod]

        public void chek_null()

        {

            mohammad.Unity m = new mohammad.Unity();

            string strsource = null;

            bool strActual = m.chekDate(strsource);

            Assert.AreEqual(expected: false, actual: strActual);

        }

این متد چکار میکند: میگوید که تابع chekDate باید چک کند اگر مقدار null گرفت خروجی false بدهد. حالا تابع cehekDate را ببینید این آیتم را بررسی نکرده بنابراین به برنامه نویس خطا داده می شود.

بنابراین برنامه نویس باید تک کد chekdate را به شکل زیر تغییر دهد

 public bool chekDate(string date)

       {

           if (date == null)

           {

               return false;

           }

           return true;

       }

کلا مزیت استفاده از این روش این است که اگر شما 100 تا تابع را تست کردید، بعد از مدتی 10 تابع دیگر به نرم افزار اضافه شد، توابع تست مربوط به آن 10 تابع را که گروه تست طراحی کردند، با زدن یک دکمه می توانند هر 110 تابع را با هم تست کنند. به این ترتیب صحت کد های قبلی همواره بررسی می شود


موضوعات مرتبط: برنامه نویسی
برچسب‌ها: UnitTest , تست نرم افزار خاطرات یک کارشناس IT...
ما را در سایت خاطرات یک کارشناس IT دنبال می کنید

برچسب : نویسنده : 9persionits1 بازدید : 157 تاريخ : پنجشنبه 25 دی 1399 ساعت: 6:16