
xUnit یا تست واحد یک روش تست نرمافزار است که در زمان توسعه برای آزمایش کوچکترین اجزا نرمافزار انجام میشود. این به این معنی است که به جای تست کردن ماژول بزرگ بخشی از کد خود را تست می کنید.
یک جز کوچک در این حالت که میتواند تابعی از هر ویژگی یا هر کلاس باشد که کارکرد خاص را کنترل میکند.
موارد تست به ما کمک می کند که تا آزمایش کنیم و تست کنیم که ببینیم هر فرد بخش خود را به درستی انجام می دهد یا نه این کار اساساً به ما اطمینان میدهد که سیستم مطابق با نیازمندیها طراحی شدهاست و به ما کمک میکند تا قبل از قرار دادن کد واقعی به محیط QA، اشکالات را دریابیم.
هنگامی که در مورد آزمایش واحد در توسعه نرمافزار صحبت میکنیم، اگر آن را به همراه کد واقعی به صورت زیر بنویسیم، مزایای زیادی داریم.
همان طور که در بالا در مورد مزایای آزمون تست دیدید به ما کمک می کند که اشکالات کد ما در بیاید و ما زودتر بتوانیم مشکلات کدمان را رفع کنیم و باگ های آن را در بیاریم و کدمان را بدون خطا داشته باشیم.
ابتدا یک پروژه از نوع ASP.NET Core Console Application با استفاده از نرم افزار visual 2017 ایجاد می کنیم تا یک پروژه تست با xUnit بنویسم.
زمانی که پروژه آماده است یک کلاس به نام ” MathOperation.cs ” که در این کلاس برخی از عملیات ریاضی انجام می شود و به صورت زیر خواهیم نوشت:
namespace UnitTestingDemo
{
public static class MathOperation
{
public static double Add(double number1, double number2)
{
return (number1 + number2);
}
public static double Subtract(double number1, double number2)
{
return (number1 - number2);
}
public static double Multiply(double number1, double number2)
{
return (number1 * number2);
}
public static double Divide(double number1, double number2)
{
return (number1 / number2);
}
}
}
در کلاس بالا چهار عملیات ریاضی وجود دارد که دو مقدار ورودی و خروجی را می گیرد و مقدار ها را بر می گرداند.
حالا ما یک پروژه ی دیگر برای تست واحد ایجاد می کنیم روی solution پروژه راست کلیک کرده و گزینه ی add را می زنید و نام پروژه را انتخاب می کنید و بعد از آن ok را انتخاب می کنیم.
xUnit.net این یک منبع باز از سورس است و یک ابزار برای آزمایش کد استفاده می شود و برای چهار چوب .net از آن استفاده می شود.
ما یک پروژه ی آماده برای تست داریم اجازه دهید Reference پروژه را در بیاوریم تا بتوانیم از متد های کلاس بالا که برای ۴ عملیات ریاضی نوشتیم استفاده کنیم.
برای اضافه کردن Reference ، روی Interface پروژه کلیک راست کرده و بر روی “Add Reference” کلیک کنید.
این کار یک پنجره برای شما باز می کند که با استفاده از آن می توانید dll خود را به آن اضافه نمایید بنابر این با یک کلیک راست کردن و انتخاب پروژه اصلی و زدن OK پروژه ی شما اضافه می شود.

xUnit
حالا داخل پروژه ی خود یک کلاس به نام “MathOperationTest.cs” ایجاد نمایید و آزمون تست را برای متد های کلاس MathOperation.cs بنویسید.
در اینجا ۴ متد برای آزمایش ۴ روش مختلف وجود دارد یکی از داده ها برای آزمایش و دوم داده مقادیر مورد نیاز است که در مرحله ی آخر این مقدار با مقدار قبلی چک می شود.
در زیر کلاسی به نام MathOperationTest وجود دارد که ما موارد تست را اجرا کرده ایم.
using UnitTestingDemo;
using Xunit;
namespace XUnitTestDemo
{
public class MathOperationTest
{
[Fact]
public void Task_Add_TwoNumber()
{
// Arrange
var num1 = 2.9;
var num2 = 3.1;
var expectedValue = 6;
// Act
var sum = MathOperation.Add(num1, num2);
//Assert
Assert.Equal(expectedValue, sum, 1);
}
[Fact]
public void Task_Subtract_TwoNumber()
{
// Arrange
var num1 = 2.9;
var num2 = 3.1;
var expectedValue = -0.2;
// Act
var sub = MathOperation.Subtract(num1, num2);
//Assert
Assert.Equal(expectedValue, sub, 1);
}
[Fact]
public void Task_Multiply_TwoNumber()
{
// Arrange
var num1 = 2.9;
var num2 = 3.1;
var expectedValue = 8.99;
// Act
var mult = MathOperation.Multiply(num1, num2);
//Assert
Assert.Equal(expectedValue, mult, 2);
}
[Fact]
public void Task_Divide_TwoNumber()
{
// Arrange
var num1 = 2.9;
var num2 = 3.1;
var expectedValue = 0.94; //Rounded value
// Act
var div = MathOperation.Divide(num1, num2);
//Assert
Assert.Equal(expectedValue, div, 2);
}
}
}
زمانی که برای تست قرار می دهید تمام مراحل تست می شود و شما مانند تصویر زیر می توانید آن را مشاهده کنید.
شما می توانید این آزمون را در IE هم چک کنید بر اساس همان شما می توانید متوجه شوید که آزمون شما چقدر پیچیده است یا نه و زمانی که آزمون با موفقیت اجرا می شود به صورت زیر خواهد بود.

xUnit
بنابراین شما در مقاله xUnit یاد گرفتید که ازمون واحد چیست و چه مزایا و معایبی دارد و چگونه کار می کند.
برچسب:
نویسنده: دانلودی