C# (.NET) में परीक्षण: फ्रेमवर्क और टूल्स का संपूर्ण अवलोकन

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

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

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

C# (.NET) में परीक्षण: फ्रेमवर्क और टूल्स



परीक्षण .NET प्लेटफॉर्म पर पेशेवर डेवलपमेंट का एक अनिवार्य हिस्सा है। कोड का गुणवत्तापूर्ण परीक्षण कवरेज बग की संख्या को कम करता है, रिफैक्टरिंग को सरल बनाता है और उत्पाद में विश्वास बढ़ाता है। C# इकोसिस्टम में कई परिपक्व फ्रेमवर्क और उपयोगिताएँ मौजूद हैं, जिनमें से प्रत्येक विशिष्ट कार्यों को हल करता है: यूनिट परीक्षण से लेकर इंटीग्रेशन जाँच और UI परीक्षण तक। इस लेख में, हम मुख्य टूल्स, उनकी क्षमताओं और उपयोग के उदाहरणों पर चर्चा करेंगे।



यूनिट परीक्षण के लिए मुख्य फ्रेमवर्क



यूनिट परीक्षण परीक्षण पिरामिड का आधार है। .NET Core / .NET 5+ में, डी-फैक्टो मानक xUnit.net बन गया है, हालाँकि NUnit और MSTest का भी सक्रिय रूप से उपयोग किया जाता है।



xUnit.net

आधुनिक, लचीला और सबसे लोकप्रिय फ्रेमवर्क। यह "फैक्ट्स" और "थ्योरीज़" के सिद्धांत पर काम करता है।

  • फैक्ट्स (Fact) — बिना पैरामीटर के सरल परीक्षण।
  • थ्योरीज़ (Theory) — [InlineData] या [MemberData] विशेषताओं से डेटा के साथ पैरामीटरीकृत परीक्षण।
  • [TestClass] विशेषता की आवश्यकता नहीं है — कोई भी सार्वजनिक क्लास परीक्षण रख सकती है।
using Xunit;

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

[Theory] [InlineData(1, 2, 3)] [InlineData(-1, -1, -2)] public void Add_WithMultipleInputs_ShouldReturnCorrectSum(int a, int b, int expected) { var calc = new Calculator(); var result = calc.Add(a, b); Assert.Equal(expected, result); }}


NUnit

समृद्ध इतिहास वाला क्लासिक फ्रेमवर्क। यह शक्तिशाली विशेषताओं और पैरामीटरीकरण समर्थन के लिए जाना जाता है।

  • [Test], [TestCase], [SetUp] विशेषताओं का उपयोग करता है।
  • परीक्षणों के समानांतर निष्पादन का समर्थन करता है।
  • परीक्षण डेटा के साथ जटिल परिदृश्यों के लिए सुविधाजनक।
using NUnit.Framework;

[TestFixture]public class CalculatorNUnitTests{ [Test] public void Subtract_ShouldReturnDifference() { var calc = new Calculator(); var result = calc.Subtract(10, 4); Assert.That(result, Is.EqualTo(6)); }

[TestCase(5, 3, 2)] [TestCase(0, 0, 0)] public void Subtract_WithParameters_ShouldReturnCorrect(int a, int b, int expected) { var calc = new Calculator(); Assert.That(calc.Subtract(a, b), Is.EqualTo(expected)); }}


MSTest

Microsoft का अंतर्निहित फ्रेमवर्क। सरल प्रोजेक्ट्स और Visual Studio इकोसिस्टम में काम करने वाली टीमों के लिए आदर्श।

  • विशेषताएँ: [TestMethod], [TestClass], [DataRow]।
  • Azure DevOps और CI/CD पाइपलाइनों के साथ गहन एकीकरण।
using Microsoft.VisualStudio.TestTools.UnitTesting;

[TestClass]public class CalculatorMSTests{ [TestMethod] public void Multiply_ShouldReturnProduct() { var calc = new Calculator(); var result = calc.Multiply(4, 5); Assert.AreEqual(20, result); }

[DataRow(2, 3, 6)] [DataRow(0, 100, 0)] [DataTestMethod] public void Multiply_WithDataRows_ShouldReturnCorrect(int a, int b, int expected) { var calc = new Calculator(); Assert.AreEqual(expected, calc.Multiply(a, b)); }}


मॉक ऑब्जेक्ट्स और आइसोलेशन के लिए लाइब्रेरीज़

यूनिट परीक्षण में, अक्सर परीक्षण किए जा रहे कोड को बाहरी निर्भरताओं (DB, API, फ़ाइल सिस्टम) से अलग करना आवश्यक होता है। इसके लिए मॉक फ्रेमवर्क का उपयोग किया जाता है।



Moq

सबसे लोकप्रिय फ्रे

अनुशंसाएँ