C# (.NET) में परीक्षण: प्रमुख फ्रेमवर्क और टूल्स का अवलोकन
गुणवत्तापूर्ण परीक्षण .NET प्लेटफॉर्म पर विश्वसनीय सॉफ्टवेयर विकास का एक अनिवार्य हिस्सा है। C# इकोसिस्टम में कई परिपक्व फ्रेमवर्क और उपयोगिताएँ हैं जो कोड की जाँच को सभी स्तरों पर स्वचालित करने में मदद करती हैं: यूनिट टेस्ट से लेकर इंटीग्रेशन और UI टेस्ट तक। इस लेख में, हम मुख्य टूल्स, उनकी विशेषताओं और व्यावहारिक उपयोग के उदाहरणों पर चर्चा करेंगे।
यूनिट परीक्षण के लिए मुख्य फ्रेमवर्क
.NET में यूनिट परीक्षण के लिए फ्रेमवर्क का चुनाव अक्सर तीन मुख्य उम्मीदवारों तक सीमित होता है: xUnit, NUnit और MSTest। ये सभी टेस्ट परिभाषित करने, assertions और कमांड लाइन या IDE से चलाने के लिए एट्रीब्यूट का समर्थन करते हैं।
xUnit.net
एक आधुनिक, सक्रिय रूप से विकसित होने वाला फ्रेमवर्क, जिसे NUnit के लेखक ने बनाया है। यह न्यूनतम डिज़ाइन, इनिशियलाइज़ेशन के लिए कंस्ट्रक्टर के पक्ष में [TestFixture] एट्रीब्यूट को छोड़ने के लिए जाना जाता है। यह .NET Core और .NET 5+ के साथ पूरी तरह से एकीकृत होता है।
using Xunit;
public class CalculatorTests{ [Fact] public void Add_ShouldReturnSum_WhenTwoNumbersAreProvided() { // Arrange var calculator = new Calculator(); int a = 5, b = 3;
// Act int result = calculator.Add(a, b);
// Assert Assert.Equal(8, result); }
[Theory] [InlineData(2, 3, 5)] [InlineData(0, 0, 0)] [InlineData(-1, 1, 0)] public void Add_ShouldHandleVariousCases(int a, int b, int expected) { var calculator = new Calculator(); int result = calculator.Add(a, b); Assert.Equal(expected, result); }}मुख्य विशेषताएँ: सामान्य टेस्ट के लिए [Fact], पैरामीटरयुक्त टेस्ट के लिए [InlineData] के साथ [Theory], और अंतर्निहित एसिंक्रोनस टेस्ट समर्थन।
NUnit
सबसे पुराने फ्रेमवर्क में से एक, जो कॉर्पोरेट प्रोजेक्ट्स में व्यापक रूप से उपयोग किया जाता है। यह एट्रीब्यूट ([SetUp], [TearDown], [TestCase]) का समृद्ध सेट और टेस्ट संदर्भ प्रबंधन के लिए लचीली तंत्र प्रदान करता है।
using NUnit.Framework;
[TestFixture]public class CalculatorTests{ private Calculator _calculator;
[SetUp] public void Setup() { _calculator = new Calculator(); }
[Test] [TestCase(1, 2, 3)] [TestCase(10, -5, 5)] public void Add_ShouldReturnCorrectSum(int a, int b, int expected) { int result = _calculator.Add(a, b); Assert.That(result, Is.EqualTo(expected)); }}अंतर: क्लास के लिए [TestFixture] एट्रीब्यूट की आवश्यकता होती है, constraint-मॉडल के साथ Assert.That(...) का उपयोग करता है, जो assertions को अधिक पठनीय बनाता है।
MSTest
Microsoft का फ्रेमवर्क, जो Visual Studio में निर्मित है। सीखना आसान है, लेकिन xUnit या NUnit की तुलना में कम लचीला है। अक्सर उन प्रोजेक्ट्स में उपयोग किया जाता है जहाँ कंपनी स्तर पर मानकीकरण महत्वपूर्ण है।
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]public class CalculatorTests{ [TestMethod] public void Add_ShouldReturnSum() { var calculator = new Calculator(); int result = calculator.Add(2, 3); Assert.AreEqual(5, result); }}मॉक ऑब्जेक्ट और स्टब के लिए लाइब्रेरीज़
परीक्षण किए जा रहे कोड को बाहरी निर्भरताओं (DB, API, फ़ाइल सिस्टम) से अलग करने के लिए मॉक फ्रेमवर्क का उपयोग किया जाता है। .NET में सबसे लोकप्रिय हैं Moq, NSubstitute और FakeItEasy।
Moq
लोकप्रियता में अग्रणी। यह लैम्ब्डा एक्सप्रेशन के माध्यम से आसानी से डायनामिक मॉक ऑब्जेक्ट बनाने की अनुमति देता है।
using Moq;using Xunit;
public class OrderServiceTests{ [Fact] public void PlaceOrder_ShouldCallRepository_WhenVali पुस्तकालय में भी
TypeScript में प्रमाणीकरण और अधिकारिता: पूर्ण गाइड
Go (Golang) अनुप्रयोग निगरानी: पुस्तकालय और उपकरण
Go (Golang) के लिए CLI फ्रेमवर्क: कंसोल एप्लिकेशन बनाने के लिए उपकरणों की पूर्ण समीक्षा
Rust में JSON प्रसंस्करण: serde_json, simd-json, json5 और अन्य लाइब्रेरीज़