xUnit / NUnit C# (.NET) पूर्ण गाइड: उदाहरण और ट्यूटोरियल

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

यह लाइब्रेरी क्या है और इसकी आवश्यकता क्यों है

xUnit और NUnit .NET इकोसिस्टम (C#, F#, VB.NET) में यूनिट टेस्टिंग (unit testing) की दो सबसे लोकप्रिय लाइब्रेरीज़ हैं। ये डेवलपर्स को ऑटोमेटेड टेस्ट लिखने में मदद करती हैं, जो प्रोग्राम के अलग-अलग मॉड्यूल (क्लास, मेथड, फंक्शन) की सही कार्यप्रणाली की जांच करते हैं।

इसकी आवश्यकता क्यों है?

  • शुरुआती चरणों में एरर पकड़ना: कोड में हर बदलाव के बाद टेस्ट चलते हैं, जिससे रिग्रेशन (जब नया कोड पुरानी फंक्शनैलिटी को तोड़ दे) तुरंत पकड़ में आ जाता है।
  • बिना डर के रिफैक्टरिंग: अगर आपके टेस्ट कोड को कवर करते हैं, तो आप बेझिझक कोड को दोबारा लिख सकते हैं। अगर टेस्ट पास हो जाते हैं, तो सब कुछ पहले जैसा काम कर रहा है।
  • एक्टिव डॉक्यूमेंटेशन: टेस्ट यह दिखाते हैं कि किसी मेथड का उपयोग कैसे करना है, वह कौन से पैरामीटर लेता है और क्या रिटर्न करता है।
  • CI/CD इंटीग्रेशन: डिप्लॉयमेंट से पहले टेस्ट बिल्ड सर्वर (GitHub Actions, Azure DevOps, Jenkins) पर ऑटोमैटिकली चलते हैं।

xUnit और NUnit में अंतर:

  • NUnit — पुरानी लाइब्रेरी (Java JUnit से पोर्ट), इसमें [Test], [SetUp], [TearDown] जैसे एट्रीब्यूट्स का उपयोग होता है। पैरामीटराइज़ेशन के लिए इसके पास एट्रीब्यूट्स का एक समृद्ध सेट है।
  • xUnit — अधिक आधुनिक लाइब्रेरी, जिसे NUnit के निर्माता ने बनाया है। सामान्य टेस्ट के लिए [Fact] और पैरामीटराइज़्ड टेस्ट के लिए [Theory] एट्रीब्यूट का उपयोग करता है। यह टेस्ट आइसोलेशन (हर टेस्ट के लिए क्लास का नया इंस्टेंस) के प्रति अधिक सख्त दृष्टिकोण रखता है।

इस लेख में हम दोनों लाइब्रेरीज़ पर चर्चा करेंगे, लेकिन मुख्य फोकस xUnit पर होगा, क्योंकि Microsoft नई प्रोजेक्ट्स के लिए इसी की सिफारिश करता है।

इंस्टॉलेशन

इंस्टॉलेशन NuGet पैकेज मैनेजर के माध्यम से किया जाता है। आप पैकेज मैनेजर कंसोल (Package Manager Console) या .NET CLI का उपयोग कर सकते हैं।

xUnit इंस्टॉलेशन

// .NET CLI के माध्यम से
dotnet add package xunit
dotnet add package xunit.runner.visualstudio

// Package Manager Console के माध्यम से
Install-Package xunit
Install-Package xunit.runner.visualstudio

NUnit इंस्टॉलेशन

// .NET CLI के माध्यम से
dotnet add package NUnit
dotnet add package NUnit3TestAdapter

// Package Manager Console के माध्यम से
Install-Package NUnit
Install-Package NUnit3TestAdapter

महत्वपूर्ण: Visual Studio या Rider में टेस्ट चलाने के लिए टेस्ट रनर एडॉप्टर (जैसे xunit.runner.visualstudio या NUnit3TestAdapter) इंस्टॉल करना भी आवश्यक है।

कोड उदाहरण के साथ त्वरित शुरुआत

मान लीजिए हमारे पास Add मेथड वाली एक सरल Calculator क्लास है। आइए इसके लिए xUnit और NUnit में टेस्ट लिखें।

टेस्ट की जाने वाली क्लास (Calculator.cs)

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

    public int Divide(int a, int b)
    {
        if (b == 0)
            throw new DivideByZeroException("शून्य से भाग नहीं दे सकते!");
        return a / b;
    }
}

xUnit पर टेस्ट (CalculatorTests.cs)

using Xunit;

public class CalculatorTests
{
    [Fact]
    public void Add_ShouldReturnSum_WhenTwoPositiveNumbers()
    {
        // Arrange (तैयारी)
        var calculator = new Calculator();
        int a = 5;
        int b = 3;

        // Act (क्रिया)
        int result = calculator.Add(a, b);

        // Assert (जांच)
        Assert.Equal(8, result);
    }

    [Fact]
    public void Divide_ShouldThrowException_WhenDivideByZero()
    {
        var calculator = new Calculator();

        Assert.Throws<DivideByZeroException>(() => calculator.Divide(10, 0));
    }
}

NUnit पर टेस्ट (CalculatorTests.cs)

using NUnit.Framework;

[TestFixture]
public class CalculatorTests
{                    

अनुशंसाएँ