ASP.NET Core অ্যাপের জন্য Unit Test লিখা (xUnit ব্যবহার)

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Unit Testing এবং Integration Testing |
228
228

Unit Testing হলো সফটওয়্যার ডেভেলপমেন্টের একটি গুরুত্বপূর্ণ অংশ, যা অ্যাপ্লিকেশনের ছোট ছোট ইউনিট বা কম্পোনেন্টের কার্যকারিতা পরীক্ষা করে। xUnit হলো একটি জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক, যা ASP.NET Core অ্যাপের জন্য সহজে Unit Test লিখতে সাহায্য করে। এটি দ্রুত, মডিউলার, এবং সহজবোধ্য টেস্টিং ফিচার প্রদান করে।


xUnit ইনস্টল করা

xUnit ব্যবহার করতে আপনার ASP.NET Core প্রজেক্টে xUnit NuGet প্যাকেজ ইনস্টল করতে হবে।

টেস্ট প্রজেক্ট তৈরি করা

একটি আলাদা টেস্ট প্রজেক্ট তৈরি করতে নিচের কমান্ড ব্যবহার করুন:

dotnet new xunit -n MyApp.Tests

MyApp.Tests টেস্ট প্রজেক্টের জন্য নির্ধারিত নাম।

ASP.NET Core অ্যাপের রেফারেন্স যোগ করা

আপনার মূল অ্যাপ্লিকেশন প্রজেক্টকে টেস্ট প্রজেক্টে রেফারেন্স হিসেবে যোগ করুন:

dotnet add reference ../MyApp/MyApp.csproj

টেস্ট ক্লাস এবং মেথড তৈরি

উদাহরণ: ASP.NET Core Service ক্লাস

একটি সাধারণ CalculatorService ক্লাস, যা যোগ এবং বিয়োগ ফাংশনালিটি প্রদান করে:

public class CalculatorService
{
    public int Add(int a, int b) => a + b;
    public int Subtract(int a, int b) => a - b;
}

xUnit ব্যবহার করে Unit Test লেখা

MyApp.Tests প্রজেক্টে একটি টেস্ট ক্লাস তৈরি করুন (যেমন CalculatorServiceTests.cs) এবং টেস্ট লিখুন।

using Xunit;

public class CalculatorServiceTests
{
    [Fact]
    public void Add_ReturnsSumOfTwoNumbers()
    {
        // Arrange
        var calculator = new CalculatorService();
        int a = 5, b = 3;

        // Act
        int result = calculator.Add(a, b);

        // Assert
        Assert.Equal(8, result);
    }

    [Fact]
    public void Subtract_ReturnsDifferenceOfTwoNumbers()
    {
        // Arrange
        var calculator = new CalculatorService();
        int a = 10, b = 4;

        // Act
        int result = calculator.Subtract(a, b);

        // Assert
        Assert.Equal(6, result);
    }
}

ব্যাখ্যা:

  • Arrange: টেস্টের জন্য প্রয়োজনীয় ডেটা এবং অবজেক্ট তৈরি করা।
  • Act: টেস্ট করা মেথড কল করা।
  • Assert: মেথডের আউটপুট যাচাই করা।

Dependency Injection এর সাথে Unit Test

ASP.NET Core অ্যাপ্লিকেশন সাধারণত Dependency Injection (DI) ব্যবহার করে। টেস্টিংয়ে DI ব্যবহারের জন্য Mocking ফ্রেমওয়ার্ক (যেমন Moq) প্রয়োজন।

উদাহরণ: DI এর মাধ্যমে সার্ভিস টেস্ট

IWeatherService ইন্টারফেস এবং একটি ইমপ্লিমেন্টেশন:

public interface IWeatherService
{
    string GetWeather();
}

public class WeatherService : IWeatherService
{
    public string GetWeather() => "Sunny";
}

Controller:

[ApiController]
[Route("[controller]")]
public class WeatherController : ControllerBase
{
    private readonly IWeatherService _weatherService;

    public WeatherController(IWeatherService weatherService)
    {
        _weatherService = weatherService;
    }

    [HttpGet]
    public string Get()
    {
        return _weatherService.GetWeather();
    }
}

টেস্ট লিখা Moq ব্যবহার করে

Moq ব্যবহার করে DI এর জন্য Mock করা যায়। Moq প্যাকেজ ইন্সটল করুন:

dotnet add package Moq

টেস্ট ক্লাস:

using Moq;
using Xunit;

public class WeatherControllerTests
{
    [Fact]
    public void Get_ReturnsWeatherFromService()
    {
        // Arrange
        var mockWeatherService = new Mock<IWeatherService>();
        mockWeatherService.Setup(service => service.GetWeather()).Returns("Cloudy");

        var controller = new WeatherController(mockWeatherService.Object);

        // Act
        var result = controller.Get();

        // Assert
        Assert.Equal("Cloudy", result);
    }
}

ব্যাখ্যা:

  • Mock: IWeatherService ইন্টারফেসের একটি মক তৈরি করা।
  • Setup: মকের মেথডের জন্য প্রত্যাশিত রিটার্ন ভ্যালু নির্ধারণ করা।
  • Assert.Equal: Controller এর আউটপুট যাচাই করা।

Unit Test রান করা

টেস্ট চালানোর জন্য নিচের কমান্ড ব্যবহার করুন:

dotnet test

ফলাফল

Unit Test সফলভাবে রান হলে নিচের আউটপুট দেখতে পাবেন:

Passed! 2 tests.

Unit Testing এর সুবিধা

  • রিগ্রেশন এড়ানো: কোড পরিবর্তনের ফলে বিদ্যমান ফিচারে সমস্যা এড়ানো যায়।
  • কোডের মান বৃদ্ধি: কোড আরও মডিউলার এবং টেস্টেবল হয়।
  • ডেভেলপমেন্ট সময় বাঁচানো: সমস্যা দ্রুত সনাক্ত করা সম্ভব।

xUnit ব্যবহার করে ASP.NET Core অ্যাপের জন্য সহজেই শক্তিশালী Unit Test তৈরি করা যায়, যা অ্যাপ্লিকেশনের মান এবং স্থায়িত্ব বাড়ায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion