در این پست از وبسایت پرووید در رابطه با انجام Unit Testing در .NET Core و با استفاده از NUnit #3 صحبت خواهیم کرد. .NET Core نسل بعدی فریم ورک دات نت است که توسط مایکروسافت معرفی شده است.

در قسمت قبل از این آموزش در رابطه با ساختن اولین test صحبت کردیم.

افزودن قابلیت های دیگر

حال که اولین test برنامه را نوشتیم، می توانیم به سناریوهای دیگری نیز فکر کنیم و test های دیگری نیز پیاده سازی کنیم. برای مثال، برای اعداد اول که پروژه ی ما در مورد آنها می باشد (دقت کنید که کلمه ی انگلیسی Prime Number به معنی عدد اول است.)، موارد دیگری مثل 1 و -1 نیز وجود دارد. خب ممکن است فکر کنید که سریعاً برای این دو مورد نیز تعدادی test method اضافه کنیم. این کار شدنی است ولی مشکلی که ایجاد می کنید حجم بالای کدهای درون test class مان می باشد. ما می توانیم با قابلیت های فریم ورک nUnit اقدام به نوشتن test هایی کنیم که تا حدودی با هم مشابه هستند ولی پارامترهای ورودی مختلفی دارند.

بسته ی آموزش ویدئویی ساخت برنامه های Cross-Platform با .NET Core

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی ساخت برنامه های Cross-Platform با .NET Core دیدن کنید.

شاید بدانید که attribute ای با نام [TestCase] به منظور نوشتن test method هایی که یک کد یکسان را test می کنند ولی پارامترهای ورودی متفاوتی دارند استفاده می شود. پس می توانیم به جای نوشتن test method های اضافه این attribute را به یک test تک اعمال کنیم. به این نوع test ها اصطلاحاً data driven test می گوییم. دقت کنید که پیاده سازی همین موضوع با استفاده از فریم ورک MSTest و فریم ورک xUnit هم پیش از این بر روی وبسایت پرووید منتشر شده است. کدی که در قسمت زیر آمده است را مشاهده کنید.

[TestCase(-1)]
[TestCase(0)]
[TestCase(1)]
public void ReturnFalseGivenValuesLessThan2(int value)
{
    var result = _primeService.IsPrime(value);

    Assert.IsFalse(result, $"{value} should not be prime");
}

این data driven test سه مقدار یعنی 0 و 1 و -1 را بر روی متد IsPrime تست می کند. به [TestCase] دقت کنید. با استفاده از دستور dotnet test اقدام به run کردن این test ها کنید. خواهید دید که دو مورد از این test ها fail می شوند. برای اینکه هر سه test نوشته شده pass شوند کافی دستور if ای که در ابتدای متد IsPrime آمده است را با دستور زیر جایگزین کنید.

توصیه می کنیم حتماً از بسته ی آموزش ویدئویی پیشرفته ی Unit Testing در تست نرم افزار وبسایت پرووید استفاده کنید. ضمناً، کد کامل مربوط به این آموزش را نیز برای شما در نظر گرفته ایم. امیدواریم که این آموزش از وبسایت پرووید نیز مورد توجه تمامی دوستان عزیر قرار گرفته باشد.

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

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