Swift में परीक्षण: यूनिट, इंटीग्रेशन, E2E — पूर्ण गाइड

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

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

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

परिचय: Swift ऐप्स का परीक्षण क्यों करें?



गुणवत्तापूर्ण iOS या macOS ऐप का विकास उचित परीक्षण के बिना संभव नहीं है। Swift इकोसिस्टम में एक शक्तिशाली फ्रेमवर्क XCTest मौजूद है, जो आपको तीनों स्तरों के परीक्षण लिखने की अनुमति देता है: मॉड्यूलर (यूनिट), इंटीग्रेशन (integration) और एंड-टू-एंड (E2E)। इनमें से प्रत्येक स्तर अपने जिम्मेदारी क्षेत्र के लिए जिम्मेदार है और विकास के विभिन्न चरणों में त्रुटियों का पता लगाने में मदद करता है।



इस लेख में, हम देखेंगे कि आधुनिक प्रथाओं और उपकरणों का उपयोग करके Swift ऐप्स के लिए परीक्षणों को सही तरीके से कैसे सेटअप और लिखा जाए। आप जानेंगे कि विभिन्न प्रकार के परीक्षण कैसे भिन्न होते हैं, और तैयार कोड उदाहरण प्राप्त करेंगे जिन्हें आप तुरंत अपने प्रोजेक्ट में लागू कर सकते हैं।



Swift में यूनिट-टेस्टिंग



यूनिट-टेस्ट परीक्षण पिरामिड की नींव हैं। वे बाहरी निर्भरताओं से अलग करके अलग-अलग घटकों (विधियों, क्लासेस, स्ट्रक्चर) के काम की जाँच करते हैं।



Xcode में यूनिट-टेस्ट सेटअप करना



Xcode में टेस्ट टार्गेट बनाने के लिए, प्रोजेक्ट बनाते समय "Include Tests" चेकबॉक्स को चिह्नित करना पर्याप्त है। यदि प्रोजेक्ट पहले से मौजूद है, तो एक नया टार्गेट जोड़ें: File → New → Target → iOS Unit Testing Bundle।



यूनिट-टेस्ट का मूल उदाहरण



कैलकुलेटर के परीक्षण का एक सरल उदाहरण देखें:



import XCTest

final class CalculatorTests: XCTestCase { var calculator: Calculator! override func setUpWithError() throws { calculator = Calculator() } override func tearDownWithError() throws { calculator = nil } func testAddition() { // Given let a = 5 let b = 3 // When let result = calculator.add(a, b) // Then XCTAssertEqual(result, 8, "5 + 3 को 8 के बराबर होना चाहिए") } func testDivisionByZero() { XCTAssertThrowsError(try calculator.divide(10, 0)) { error in XCTAssertEqual(error as? CalculatorError, CalculatorError.divisionByZero) } }}


यूनिट-टेस्ट के लिए सर्वोत्तम अभ्यास



  • पृथक्करण: प्रत्येक परीक्षण स्वतंत्र होना चाहिए। तैयारी और सफाई के लिए setUpWithError और tearDownWithError का उपयोग करें।
  • AAA पैटर्न: Arrange (तैयारी), Act (कार्रवाई), Assert (जाँच)।
  • प्रति परीक्षण एक जाँच: आदर्श परीक्षण केवल एक व्यवहार की जाँच करता है।
  • नामकरण: वर्णनात्मक नामों का उपयोग करें: testMethodName_WhenCondition_ExpectedResult।


Swift में इंटीग्रेशन टेस्टिंग



इंटीग्रेशन टेस्ट घटकों के बीच इंटरैक्शन की जाँच करते हैं: डेटाबेस, नेटवर्क अनुरोध, फ़ाइल सिस्टम के साथ काम करना। यूनिट-टेस्ट के विपरीत, यहाँ हम सब कुछ मॉक नहीं करते, बल्कि वास्तविक इंटरैक्शन का परीक्षण करते हैं।



Core Data का परीक्षण



Core Data के साथ काम करने के परीक्षण का उदाहरण:



import XCTest@testable import MyApp

final class CoreDataIntegrationTests: XCTestCase { var coreDataStack: CoreDataStack! override func setUpWithError() throws { coreDataStack = CoreDataStack(inMemory: true) // इन-मेमोरी स्टोरेज का उपयोग करें } func testSaveAndFetchUser() { // Arrange let user = User(context: coreDataStack.viewContext) user.name = "इवान" user.age = 30 // Act try? coreDataStack.viewContext.save() let fetchRequest: NSFetchRequest<User> = User.fetchRequest() let users = try? coreDataStack.viewContext.fetch(fetchRequest) // Assert XCTAssertEqual(users?.count, 1) XCTAssertEqual(users?.first?.name, "इवान") }}


नेटवर्क लेयर का परीक्षण



नेटवर्क इंटीग्रेशन टेस्ट के लिए, उपयोग करें

ब्लॉग

पुस्तक अनुशंसाएँ