Swift (iOS/macOS) में परीक्षण: फ्रेमवर्क और उपकरण

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

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

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

Swift (iOS/macOS) में परीक्षण: फ्रेमवर्क और उपकरण



Apple प्लेटफार्मों के लिए गुणवत्तापूर्ण एप्लिकेशन विकसित करना विश्वसनीय परीक्षण के बिना अकल्पनीय है। Swift पारिस्थितिकी तंत्र अंतर्निहित समाधानों के साथ-साथ शक्तिशाली तृतीय-पक्ष फ्रेमवर्क भी प्रदान करता है, जो सभी स्तरों को कवर करते हैं: मॉड्यूलर परीक्षणों से लेकर UI-परीक्षणों तक। इस लेख में, हम iOS/macOS के लिए मुख्य परीक्षण उपकरणों, उनकी ताकतों का विस्तार से विश्लेषण करेंगे और Swift में व्यावहारिक उदाहरण प्रस्तुत करेंगे।



1. XCTest — Apple का मानक फ्रेमवर्क



XCTest Xcode में सभी परीक्षणों का आधार है। यह IDE में एकीकृत है, समानांतर निष्पादन, प्रदर्शन माप और UI-परीक्षण का समर्थन करता है। परीक्षण बनाने के लिए, XCTestCase से एक वर्ग प्राप्त करना पर्याप्त है।



XCTest के साथ मॉड्यूलर परीक्षण का उदाहरण



import XCTest@testable import MyApp

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 testDivisionByZero() { XCTAssertThrowsError(try calculator.divide(10, 0)) { error in XCTAssertEqual(error as? CalculatorError, CalculatorError.divisionByZero) } }

func testPerformanceExample() { measure { for _ in 0..<1000 { _ = calculator.add(Int.random(in: 0...100), Int.random(in: 0...100)) } } }}


XCTest की प्रमुख क्षमताएँ:

  • XCTAssertEqual, XCTAssertTrue, XCTAssertNil — बुनियादी जाँचें।
  • XCTAssertThrowsError — अपवादों का परीक्षण।
  • measure — प्रदर्शन माप।
  • XCTestExpectation के माध्यम से अतुल्यकालिक परीक्षणों का समर्थन।


2. Quick और Nimble — BDD-शैली परीक्षण



Quick व्यवहार-संचालित विकास (BDD) शैली में परीक्षण लिखने के लिए एक फ्रेमवर्क है। यह एप्लिकेशन के व्यवहार को प्राकृतिक भाषा में वर्णित करने की अनुमति देता है। Nimble एक मैचर लाइब्रेरी है जो एसर्ट को अधिक पठनीय बनाती है।



Quick + Nimble के साथ उदाहरण



import Quickimport Nimble@testable import MyApp

class CalculatorSpec: QuickSpec { override func spec() { describe("Calculator") { var calculator: Calculator!

beforeEach { calculator = Calculator() }

context("जब दो संख्याएँ जोड़ी जाती हैं") { it("सही योग लौटाना चाहिए") { expect(calculator.add(2, 3)).to(equal(5)) } }

context("जब शून्य से भाग दिया जाता है") { it("एक त्रुटि फेंकनी चाहिए") { expect { try calculator.divide(10, 0) }.to(throwError()) } }

context("प्रदर्शन") { it("तेज़ होना चाहिए") { expect { for _ in 0..<1000 { _ = calculator.add(Int.random(in: 0...100), Int.random(in: 0...100)) } }.to(beLessThan(0.1)) } } } }}


लाभ:

  • पठनीय पदानुक्रम: describe → context → it।
  • Nimble मैचर का समृद्ध सेट प्रदान करता है: equal, beNil, beCloseTo, contain और अन्य।
  • Xcode और रिपोर्ट के साथ उत्कृष्ट एकीकरण।


3. SwiftCheck — प्रॉपर्टी-आधारित परीक्षण



अनुशंसाएँ