Introduction to Unit Testing Frameworks (NUnit, MSTest, xUnit) In Hindi
सी# प्रोग्रामिंग लैंग्वेज में यूनिट टेस्टिंग सॉफ्टवेयर डेवलपमेंट का एक इम्पोर्टेन्ट प्रोसेस है। यह सॉफ्टवेयर डेवलपर को यह सुनिश्चित करने में हेल्प करता है कि प्रोग्रामर द्वारा लिखे गए प्रोग्राम कोड की इंडिविजुअल यूनिट जैसे, मेथड या फ़ंक्शन के अगेंस्ट ऑटोमेटिकली टेस्टिंग रन कर एनवायरनमेंट के अनुसार सोर्स कोड बिहेव करता है। .NET कोर डेवलपमेंट इकोसिस्टम में, यूनिट टेस्टिंग को फीचरफुल के लिए कई टेस्टिंग फ्रेमवर्क मौजूद हैं, जिसमें तीन सबसे लोकप्रिय टेस्टिंग Nunit, MSTest, और Xunit फ्रेमवर्क है।

ऊपर दिए गए प्रत्येक फ्रेमवर्क के अपने एडवांस्ड फीचर्स और फंक्शन होते हैं, जहा सॉफ्टवेयर डेवलपर्स को अपने सोर्स कोड के लिए यूनिट टेस्टिंग कोड क्रिएट और एक्सेक्यूट करना होता है।
The Nunit framework.
Overview of Nunit in the C# programming language.
सॉफ्टवेयर डेवलपमेंट में Nunit .NET का सबसे पुराने और सबसे इम्पोर्टेन्ट यूनिट टेस्टिंग फ्रेमवर्क में से एक है।
जहा Nunit Xunit डेवलपमेंट आर्किटेक्चर पर डिपेंड करता है, और यूनिट टेस्टिंग में कई सिमिलर कांसेप्ट को फॉलो करता है, लेकिन इसमें अपनी अलग फीचर्स और सिंटेक्स का अपना सेट अलग होता है।
लिखे गए प्रोग्राम सोर्स कोड में NUNIT टेस्टिंग रिजल्ट को वैलिड करने के लिए डेटा-ड्रिवेन टेस्टिंग, पैरामीटर किए गए टेस्टिंग्स और क्लेम को सपोर्ट करता है।
Installing the Nunit testing framework.
Nunit और Nunit3Testadapter को Nuget के माध्यम से अपने कंप्यूटर में इन्सटाल्ड करें।
dotnet add package nunit
dotnet add package nunit3testadapter
dotnet Add package microsoft.net.test.sdk
Now create a simple Nunit test as required.
using NUnit.Framework;
namespace NUnitTests
{
public class AddtionTests
{
[Test]
public void AddInteger_ShouldReturnTotal()
{
int output = AddtionTests.Add(3, 1);
Assert.AreEqual(4, output);
}
}
}
- [test] – जरूरत के अनुसार एक टेस्टिंग मेथड के रूप में मेथड को मार्क करता है।
- Assert.areequal(expected, actual) – यह टेस्टिंग को वेलिडेट करता है कि ऑपरेशन का रिजल्ट अपेक्षित वैल्यू से मिलता जुलता होना चाहिए।
यहाँ आप डॉटनेट टेस्ट कमांड का उपयोग करके यूनिट टेस्टिंग को चलाएं।
Key Features of Nunit Framework.
- Test case attributes – टेस्टिंग में ननिट टेस्टिंग मेथड को मार्क करने के लिए [testing], सेटअप मेथड्स के लिए [setup] और क्लीनअप के लिए [teardown] जैसी ऐट्रिब्यूट्स को फॉलो करता है।
- Parameterized tests – NUNIT [TestCase] और [Valuesource] जैसी ऐट्रिब्यूट्स के द्वारा पैरामीटर टेस्टिंग को सपोर्ट करता है।
- Assertions – ननिट टेस्टिंग मेथड में कई प्रकार के दावे उपलब्ध हैं, जैसे, assert.areequal (), assert.istrue ()), आदि है।
Mstest Testing Framework.
Overview of MSTEST Testing Framework.
Mstest माइक्रोसॉफ्ट कंपनी का एक ऑफिसियल यूनिट टेस्टिंग फ्रेमवर्क है। यह विजुअल स्टूडियो एप्लीकेशन और .NET इकोसिस्टम फ्रेमवर्क के साथ इंटीग्रेट होता है। यह ज्यादातर मामलो में विज़ुअल स्टूडियो के साथ इसकी लंबे समय से चली आ रही प्रजेंस और टाइट इंटीग्रेशन के कारण इंडस्ट्री एनवायरनमेंट में उपयोग किया जाता है। Mstest टेस्टिंग फ्रेमवर्क को विजुअल स्टूडियो टेस्ट एक्सप्लोरर द्वारा सपोर्ट किया गया है, जिससे इसे आसानी से रन करने और प्रोग्राम सोर्स कोड डिबग टेस्टिंग करना बहुत आसान हो जाता है।
Installing the Mstest framework on your computer.
Install the MSTEST NUGET package on your computer.
dotnet add package mstest.testframework
dotnet add package mstest.testadapter
dotnet add package microsoft.net.test.sdk
Create a simple MSTEST test.
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace MSTestExample
{
[TestClass]
public class AddtionTests
{
[TestMethod]
public void AddInteger_ShouldReturnTotal()
{
int output = Addtion.total(7, 2);
Assert.AreEqual(9, output);
}
}
}
- [TestClass] – यह टेस्टिंग फ्रेमवर्क में टेस्टिंग मेथड्स वाले क्लास को मार्क करता है।
- [TestMethod] – यह टेस्टिंग प्रोसेस में एक टेस्टिंग के रूप में मेथड को मार्क करता है।
- Assert.areequal(expected, actual) – यह Mstest टेस्टिंग फ्रेमवर्क रिजल्ट को वेलिडेट करता है।
Test using MSTEST test.
dotnet test
Key features of Mstest testing framework.
- Test Attributes – [TestClass] और [TestMethod] का उपयोग टेस्टिंग क्लासेज और मेथड को मार्क करने में किया जाता है।
- Setup and Teardown – Mstest टेस्टिंग फ्रेमवर्क एनवायरनमेंट की इंस्टलेशन और सफाई के लिए [testinitialize] और [TestCleanup] का उपयोग करता है।
- Assert Class – MSTest फ्रेमवर्क अपेक्षित टेस्टिंग की जाँच के लिए Assert क्लास प्रोवाइड करता है।
xUnit Testing Framework.
Overview of the xUnit Testing Framework.
xUnit टेस्टिंग फ्रेमवर्क .NET फ्रेमवर्क के लिए एक मॉडर्न यूनिट टेस्टिंग फ्रमवर्क है, और इसका ग्लोबली रूप से .NET कोर इकोसिस्टम मैकेनिज्म में उपयोग किया जाता है। xUnit टेस्टिंग फ्रेमवर्क को उन्हीं लोगों द्वारा डेवलप किया गया था, जिन्होंने NUnit टेस्टिंग फ्रेमवर्क डेवेलप किया था, लेकिन xUnit टेस्टिंग फ्रेमवर्क सोर्स कोड टेस्टिंग के लिए अधिक फ्लेक्सिबल, कम्युनिटी-ड्रिवेन ओवरव्यू प्रोवाइड करता है। यह xUnit [SetUp] और [TearDown] जैसी टेस्टिंग ऐट्रिब्यूट्स का उपयोग नहीं करता है। इसके बदले, यह सेटअप/टियरडाउन ऑपरेशन के लिए कंस्ट्रक्टर और IDisposable को फॉलो करता है।
Setting up xUnit on your computer.
Install the xUnit Framework NuGet package.
dotnet add package xUnit
dotnet add package xunit.runner.visualstudio
dotnet add package Microsoft.NET.Test.Sdk
Create a simple xUnit testing application on your computer.
using Xunit;
namespace xUnitTests
{
public class AddtionTests
{
[Fact]
public void AddInteger_ShouldReturnTotal()
{
int output = Addtion.Add(2, 9);
Assert.Equal(11, output);
}
}
}
- [Fact] – फैक्ट मेथड को टेस्टिंग के रूप में मार्क करता है, यह बिना किसी पैरामीटर के टेस्टिंग के द्वारा इसे करता है।
- Assert.Equal(Expected, Actual) – यह कोड टेस्टिंग में टेस्ट करता है कि मौजूदा कोड टेस्टिंग में अपेक्षित और वास्तविक रिजल्ट आपस में मेल खाते हैं या नहीं।
Run the xUnit Testing Framework test.
dotnet test
Key features of the xUnit Testing Framework.
- Test method attributes – यह [Test] के बजाय, xUnit टेस्टिंग फ्रेमवर्क पैरामीटर रहित टेस्टिंग के लिए [Fact] और पैरामीटरयुक्त टेस्टिंग के लिए [Theory] मेथड का उपयोग करता है।
- Constructor for Setup – यह सेटअप क्लास कंस्ट्रक्टर में उपयोग किया जाता है, इसके साथ ही टियरडाउन IDisposable का उपयोग करके किया जाता है।
- Simple syntax – इसमें SetUp या TearDown जैसी ऐट्रिब्यूट्स की कोई जरूरत नहीं है, जिससे सोर्स कोड टेस्टिंग आसान हो जाती हैं, और टेस्टिंग फ्रेमवर्क से ये कम जुड़े होते हैं।
Conclusion of Nunit, MSTest, and Xunit Frameworks.
प्रोग्राम सोर्स कोड टेस्टिंग में NUnit, MSTest और xUnit जैसे यूनिट टेस्टिंग फ्रेमवर्क आपके अपने प्रोग्राम कोड की क्वालिटी और स्टेबिलिटी सुनिश्चित करने के लिए आवश्यक टेस्टिंग टूल्स हैं। यहाँ इन सभी टेस्टिंग फ्रेमवर्क की अपनी एक अलग फीचर्स और फंक्शन है, ये हर प्रकार के यूनिट टेस्टिंग कोड क्रिएट करने और उसे एक्सेक्यूट करने के लिए जरूरी फीचर्स और फंक्शन प्रोवाइड करते हैं। यहाँ टेस्टिंग फ्रेमवर्क का सलेक्शन आपकी प्रोजेक्ट डेवलपमेंट ज़रूरतों की प्रायोरिटी और मौजूदा इकोसिस्टम मैकेनिज्म पर डिपेंड करता है।