XCTest — Swift (iOS/macOS) में परीक्षण

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

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

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

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

XCTest Apple का एक अंतर्निहित फ्रेमवर्क है जो Swift (iOS, macOS, watchOS, tvOS) पर एप्लिकेशन के यूनिट, फंक्शनल और परफॉर्मेंस टेस्टिंग के लिए उपयोग किया जाता है। यह Python के लिए pytest या Java के लिए JUnit जैसी लाइब्रेरीज़ के समान है, लेकिन यह पूरी तरह से Xcode और Swift Package Manager में एकीकृत है। XCTest स्वचालित रूप से अलग-अलग फंक्शन, क्लास, UI-कम्पोनेंट और नेटवर्क रिक्वेस्ट की सही कार्यप्रणाली की जांच करने की अनुमति देता है, जो नेटिव एप्लिकेशन विकसित करते समय कोड की गुणवत्ता बनाए रखने के लिए महत्वपूर्ण है।

XCTest कैसे स्थापित करें?

XCTest Xcode के साथ आता है और इसे अलग से स्थापित करने की आवश्यकता नहीं है। शुरू करने के लिए, बस Xcode में एक नया प्रोजेक्ट बनाएं और टेस्ट के लिए एक टार्गेट जोड़ें (iOS Unit Testing Bundle या macOS Unit Testing Bundle)। यदि आप Swift Package Manager का उपयोग कर रहे हैं, तो अपनी टेस्ट फ़ाइल में बस import XCTest डिपेंडेंसी जोड़ें। CI/CD (जैसे GitHub Actions) के साथ एकीकरण के लिए, यह स्क्रिप्ट जोड़ें: xcodebuild test -scheme YourScheme -destination 'platform=iOS Simulator,name=iPhone 14'।

XCTest की मुख्य विशेषताएं

  • यूनिट टेस्ट (Unit Tests) — XCTAssert का उपयोग करके अलग-अलग मेथड और क्लास की जांच करना।
  • परफॉर्मेंस टेस्ट — measure के माध्यम से कोड ब्लॉक के निष्पादन समय को मापना।
  • UI-टेस्ट — XCUIApplication के माध्यम से इंटरफ़ेस के साथ इंटरैक्शन को स्वचालित करना।
  • एसिंक्रोनस टेस्टिंग — XCTestExpectation के माध्यम से प्रतीक्षाओं के साथ काम करना।
  • पैरामीटराइज्ड टेस्ट — एक ही टेस्ट को विभिन्न इनपुट डेटा के साथ चलाना (लूप के माध्यम से)।

Swift (iOS) पर कोड उदाहरण

import XCTest

class CalculatorTests: XCTestCase { var calculator: Calculator!

override func setUp() { super.setUp() calculator = Calculator() }

override func tearDown() { calculator = nil super.tearDown() }

func testAddition() { let result = calculator.add(2, 3) XCTAssertEqual(result, 5, "5 की उम्मीद थी, \\(result) प्राप्त हुआ") }

func testPerformanceExample() { measure { _ = calculator.add(1000, 2000) } }

func testAsyncNetwork() { let expectation = self.expectation(description: "डेटा लोड हो रहा है") NetworkService.fetchData { data in XCTAssertNotNil(data) expectation.fulfill() } waitForExpectations(timeout: 5) }}

XCTest का उपयोग कब करें?

सभी व्यावसायिक iOS/macOS प्रोजेक्ट्स के लिए XCTest अनिवार्य है, खासकर यदि आप एक टीम में काम कर रहे हैं या App Store पर प्रकाशन की योजना बना रहे हैं। यह रिफैक्टरिंग के दौरान रिग्रेशन को रोकने में मदद करता है, कोड-रिव्यू को गति देता है, और UI जांच को स्वचालित करता है। नेटवर्क रिक्वेस्ट और डेटाबेस के साथ काम करने के परीक्षण के लिए, XCTest को मॉक (जैसे OHHTTPStubs) के साथ जोड़ा जाता है। यदि आप Swift में एक लाइब्रेरी लिख रहे हैं, तो XCTest डी-फैक्टो मानक है, क्योंकि यह Xcode और Swift Package Index द्वारा पूरी तरह से समर्थित है।

अनुशंसाएँ