কম্পিউটার টিউটোরিয়াল

C# কোডের জন্য ইউনিট টেস্টিং

ইউনিট টেস্টিং C# ডেভেলপমেন্টে অত্যন্ত গুরুত্বপূর্ণ। এটি কোডের নির্ভরযোগ্যতা, রি-ইউজেবিলিটি এবং রিফ্যাক্টরিংয়ের সময় আত্মবিশ্বাস বাড়ায়। টেস্ট-ড্রিভেন ডেভেলপমেন্ট (TDD) পদ্ধতিতে প্রথমে টেস্ট কেস লিখে তারপর কোড লিখা হয়।

ইউনিট টেস্ট প্রজেক্ট তৈরি করা (Visual Studio-এ)

  1. Solution Explorer-এ রাইট-ক্লিক করুন → Add → New Project
  2. "Unit Test Project" সিলেক্ট করুন (MSTest, NUnit, বা xUnit)
  3. প্রজেক্টের নাম দিন এবং Create ক্লিক করুন
  4. নতুন টেস্ট প্রজেক্টে রেফারেন্স যোগ করুন: Microsoft.VisualStudio.QualityTools.UnitTestFramework (MSTTest-এর জন্য)

MSTest ব্যবহার করে বেসিক টেস্ট উদাহরণ

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace MyProject.Tests
{
    [TestClass]
    public class CalculatorTests
    {
        [TestMethod]
        public void Add_TwoPositiveNumbers_ReturnsCorrectSum()
        {
            // Arrange
            var calculator = new Calculator();
            
            // Act
            int result = calculator.Add(2, 3);
            
            // Assert
            Assert.AreEqual(5, result);
        }

        [TestMethod]
        [DataRow(0, 0, 0)]
        [DataRow(-1, 1, 0)]
        [DataRow(100, 200, 300)]
        public void Add_VariousInputs_ReturnsExpected(int a, int b, int expected)
        {
            var calculator = new Calculator();
            int result = calculator.Add(a, b);
            Assert.AreEqual(expected, result);
        }
    }

    public class Calculator
    {
        public int Add(int a, int b) => a + b;
    }
}

সাধারণ Assert মেথডগুলো

মেথডব্যবহার
Assert.AreEqual(expected, actual)দুটি মান সমান কিনা চেক করে
Assert.AreNotEqualদুটি মান ভিন্ন কিনা চেক করে
Assert.IsTrue/IsFalseবুলিয়ান শর্ত চেক করে
Assert.IsNull/IsNotNullনাল চেক করে
Assert.ThrowsException<T>()নির্দিষ্ট এক্সেপশন থ্রো হয় কিনা চেক করে
CollectionAssert.AreEqualদুটি কালেকশন সমান কিনা চেক করে

টেস্ট রান করা

  • Visual Studio: Test Explorer (Ctrl+E, T) → Run All
  • CLI: dotnet test
  • CI/CD-এ: পাইপলাইনে dotnet test --logger trx ব্যবহার করুন

TDD চক্র (Red-Green-Refactor)

  1. Red: ব্যর্থ হওয়া একটি টেস্ট লিখুন
  2. Green: টেস্ট পাস করার জন্য ন্যূনতম কোড লিখুন
  3. Refactor: কোড উন্নত করুন, টেস্টগুলো পাস থাকা নিশ্চিত করুন

সাম্প্রতিক ট্রেন্ড: xUnit এবং NUnit

MSTest ছাড়া xUnit.net এবং NUnit জনপ্রিয় অল্টার্নেটিভ। xUnit-.NET Core-এর ডিফল্ট টেস্ট ফ্রেমওয়ার্ক।

xUnit উদাহরণ

using Xunit;

public class CalculatorTests
{
    [Fact]
    public void Add_TwoNumbers_ReturnsSum()
    {
        var calc = new Calculator();
        Assert.Equal(5, calc.Add(2, 3));
    }

    [Theory]
    [InlineData(1, 2, 3)]
    [InlineData(-1, 1, 0)]
    public void Add_MultipleCases(int a, int b, int expected)
    {
        var calc = new Calculator();
        Assert.Equal(expected, calc.Add(a, b));
    }
}
  1. ক্রোমে ওয়েবপেজের জন্য QR কোড কীভাবে তৈরি করবেন

  2. পাইথনে Unittest মডিউল ব্যবহার করে ইউনিট টেস্টিং

  3. পাইথন কোড অপ্টিমাইজেশনের ১১ টি কার্যকর টিপস

  4. টেস্ট-কমিট-রিভার্ট: লিগ্যাসি রুবি কোড নিরাপদে টেস্ট করার প্র্যাকটিক্যাল ওয়ার্কফ্লো