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

در این آموزش از وبسایت پرووید در رابطه با انجام unit testing در .NET Core و با استفاده از MSTest صحبت خواهیم کرد. اگر مایل هستید که همین آموزش را با استفاده از فریم ورک xUnit و فریم ورک nUnit بخوانید باید بگوییم که پیش از این بر روی سایت پرووید منتشر شده اند. ضمناً می توانید فایل های پروژه ی این آموزش را نیز دانلود کنید. علاوه بر این، توصیه می کنیم که حتماً از آموزش های وبسایت پرووید در رابطه با انجام unit testing و test driven development و همچنین از آموزش های وبسایت پرووید در رابطه با توسعه ی نرم افزار با .NET Core دیدن کنید. خب بیایید با هم بحث را آغاز کنیم.

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

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

ساختن پروژه

کار را با dot net CLI آغاز می کنیم. لطفاً، یک فولدر با نام unit-testing-using-mstest برای قرار دادن solution در آن ایجاد کنید. در این فولدر دستور dotnet new sln را اجرا کنید تا یک فایل solution جدید ایجاد شود. این فایل solution در ادامه حاوی یک class library و یک test project خواهد بود. پس از آن یک فولدر با نام PrimeService ایجاد کنید. در حال حاضر ساختار فایل ها و فولدرهایی که تا اینجا ایجاد کرده اید را مشاهده می کنید.

فولدر PrimeService را به عنوان current directory تنظیم کرده و دستور dotnet new classlib را اجرا کنید. این دستور باعث ساخته شدن یک class library جدید می شود. فایل Class1.cs را به PrimeService.cs تغییر نام دهید. خب، اگر با مفاهیم test-driven development آشنا باشید، می دانید که در ابتدا باید test ای را بنویسیم که fail شود، پس از آن با پیاده سازی logic مورد نظر کاری کنیم که آن تست pass شود و بعد از نیز refactoring هایی را بر روی logic پیاده سازی شده انجام دهیم. برای اطلاعات بیشتر در مورد ریفکتورینگ توصیه می کنیم که از بسته ی آموزش ویدئویی ریفکتورینگ در سی شارپ استفاده کنید. ضمناً، برای اطلاعات بیشتر در مورد unit testing و test-driven development می توانید از بسته ی آموزش ویدئویی Unit Testing در سی شارپ و همچنین بسته ی آموزش ویدئویی Test First Development در سی شارپ سری اول و بسته ی آموزش ویدئویی Test First Development در سی شارپ سری دوم استفاده کنید.

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

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

خب، کدی که در قسمت زیر مشاهده می کنید محتویات کلاس PrimeService را نشان می دهد.

using System;

namespace Prime.Services
{
    public class PrimeService
    {
        public bool IsPrime(int candidate) 
        {
            throw new NotImplementedException("Please create a test first");
        } 
    }
}

همانطور که مشاهده می کنید برای متد IsPrime که یک پارامتر ورودی از نوع int دریافت کرده است هیچ logic ای در نظر گرفته نشده است. این موضوع بدون شک باعث fail شدن اولین test ما خواهد شد. اما نگران نباشید. با استفاده از همان سیکل سه مرحله ای که در قسمت بالا نیز به آن اشاره کردیم و تحت عنوان Red-Green-Refactor نیز شناخته می شود، پیاده سازی مناسبی را برای بدنه ی این متد در نظر خواهیم گرفت.

با استفاده از CLI به فولدر unit-testing-using-mstest بروید و دستور dotnet sln add PrimeService/PrimeService.csproj را اجرا کنید.

این دستور باعث می شود که پروژه ی class library ای که ایجاد کردیم به solution اضافه شود.

ساخت پروژه ی unit test

در ابتدا یک فولدر با نام PrimeService.Tests ایجاد کنیم. در حال حاضر ساختار پروژه و فایل های آن شبیه به ساختار زیر می باشد.

این فولدر ساخته شده را به عنوان current directory تنظیم کنید و با استفاده از دستور dotnet new mstest یک پروژه ی تست جدید بسازید. این دستور باعث ساخته شدن یک پروژه ی test جدید می شود که از MStest به عنوان test library استفاده می کند. ضمناً، اگر نگاهی به فایل PrimeServiceTests.csproj در یک xml editor بیندازید می بینید که به صورت خودکار test runner نیز برای ما پیکربندی شده است. این موضوع در کد زیر نشان داده شده است.

<ItemGroup>
  <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
  <PackageReference Include="MSTest.TestAdapter" Version="1.1.18" />
  <PackageReference Include="MSTest.TestFramework" Version="1.1.18" />
</ItemGroup>

خب، پروژه ی test ای که تا به اینجا ایجاد کرده ایم نیاز به پکیج های دیگری نیز دارد تا بتواند به درستی کار کند. توصیه می کنیم بسته ی آموزش ویدئویی Nuget را از وبسایت پرووید در رابطه با اضافه کردن dependency ها استفاده کنید. خب، در قسمت قبل با استفاده از دستور dotnet new توانستیم مواردی از قبیل MSTest SDK، MSTest test framework و همچنین MSTest runner را به پروژه اضافه کنیم. در این قسمت باید پروژه ی PrimeService را به عنوان یک dependency به پروژه ی test اضافه کنیم. اگر مایل باشید می توانید از بسته ی آموزش ویدئویی Inversion of Control و IoC Container ها وبسایت پرووید که در رابطه با یک از مهمترین موضوع ها در توسعه ی نرم افزار تنظیم شده اند استفاده کنید. علاوه بر این، سری آموزش متنی Inversion of Control وبسایت پرووید نیز می تواند برای شما بسیار مفید باشد.

به منظور اضافه کدرن پروژه ی PrimeService به پروژه ی test به عنوان یک dependency از دستور dotnet add reference ../PrimeService/PrimeService.csproj را استفاده می کنیم. ساختار زیر نشان دهنده ی ساختار فایل ها و فولدرهای پروژه تا اینجای کار می باشد. دستور زیر را در فولدر unit-testing-using-dotnet-test اجرا کنید.

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

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

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