منصوبے کے بارے میں

# 📸 SnapshotTesting خوشگوار سوئفٹ اسنیپ شاٹ ٹیسٹنگ۔ یہ لائبریری آپ کو کسی بھی سوئفٹ پلیٹ فارم پر کسی بھی ویلیو، کسی بھی فارمیٹ کے لیے اسنیپ شاٹ ٹیسٹ لکھنے کی اجازت دیتی ہے۔ یہ ویوز، ویو کنٹرولرز، URL درخواستوں، Encodable ویلیوز اور مزید کو سپورٹ کرتی ہے۔ ## استعمال انسٹال ہونے کے بعد، کسی اضافی کنفیگریشن کی ضرورت نہیں۔ `SnapshotTesting` ماڈیول امپورٹ کریں اور `assertSnapshot` فنکشن کال کریں۔ ```swift import SnapshotTesting import Testing @MainActor struct MyViewControllerTests { @Test func myViewController() { let vc = MyViewController() assertSnapshot(of: vc, as: .image) } } ``` جب کوئی اسرشن پہلی بار چلتا ہے، تو ایک اسنیپ شاٹ خودکار طور پر ڈسک پر ریکارڈ ہو جاتا ہے اور ٹیسٹ فیل ہو جاتا ہے، جس میں نئے ریکارڈ شدہ ریفرنس کا فائل پاتھ پرنٹ ہوتا ہے۔ دوبارہ ٹیسٹ چلانے پر یہ ریفرنس لوڈ ہوتا ہے اور رن ٹائم ویلیو سے موازنہ کیا جاتا ہے۔ ناکامیوں کا معائنہ Xcode کے Report Navigator سے یا فائل URLs کا معائنہ کر کے کیا جا سکتا ہے۔ آپ اسنیپ شاٹس کو ان لائن حسب ضرورت بنا کر یا `withSnapshotTesting` ٹول استعمال کر کے نئے ریفرنسز ریکارڈ کر سکتے ہیں۔ ## کسی بھی چیز کا اسنیپ شاٹ زیادہ تر اسنیپ شاٹ ٹیسٹنگ لائبریریوں کے برعکس جو `UIView`s کے `UIImage`s تک محدود ہیں، SnapshotTesting کسی بھی سوئفٹ پلیٹ فارم پر کسی بھی ویلیو کے کسی بھی فارمیٹ کے ساتھ کام کرتی ہے۔ `assertSnapshot` فنکشن ایک ویلیو اور کوئی بھی اسنیپ شاٹ حکمت عملی قبول کرتا ہے جسے وہ ویلیو سپورٹ کرتی ہو۔ ویو ٹیسٹنگ انتہائی قابل ترتیب ہے۔ آپ ٹریٹ کلیکشنز کو اوور رائیڈ کر سکتے ہیں اور ایک ہی سمیولیٹر سے ڈیوائس سے آزاد اسنیپ شاٹس بنا سکتے ہیں۔ دستیاب اسنیپ شاٹ حکمت عملیوں میں شامل ہیں: - `.image` ویوز اور ویو کنٹرولرز کے لیے - `.recursiveDescription` ویو ہائیرارکیز کی متنی نمائندگی کے لیے - `.raw` URL درخواستوں کے لیے - `.json` اور `.plist` `Encodable` ویلیوز کے لیے - `.dump` کسی بھی ویلیو کے لیے اس کے مرر کا استعمال کرتے ہوئے ## خصوصیات - درجنوں اسنیپ شاٹ حکمت عملیاں - اپنی اسنیپ شاٹ حکمت عملیاں لکھیں - کوئی کنفیگریشن درکار نہیں - زیادہ خودکار: نئے اسنیپ شاٹس خودکار طور پر ریکارڈ ہوتے ہیں - سب کلاس سے پاک: کسی بھی XCTest کیس یا Quick اسپیک سے اسرشن کریں - ڈیوائس سے آزاد اسنیپ شاٹس - Xcode کی فرسٹ کلاس سپورٹ جس میں تصویری فرق XCTest اٹیچمنٹس کے طور پر شامل ہیں - کسی بھی پلیٹ فارم کو سپورٹ کرتی ہے جو سوئفٹ کو سپورٹ کرتا ہے (iOS، Linux، macOS، tvOS) - SceneKit، SpriteKit اور WebKit سپورٹ - `Codable` سپورٹ - حسب ضرورت ڈف ٹول انٹیگریشن ## انسٹالیشن ### Xcode Swift Packages کے ذریعے پیکیج شامل کریں، اس بات کو یقینی بناتے ہوئے کہ یہ ٹیسٹ ٹارگٹ میں شامل ہے۔ ### Swift Package Manager پیکیج کو `Package.swift` میں ڈیپنڈنسی کے طور پر شامل کریں اور اپنے ٹیسٹ ٹارگٹ میں `SnapshotTesting` شامل کریں۔ ## پلگ انز کئی کمیونٹی پلگ انز فعالیت کو بڑھاتے ہیں، جن میں ایکسیسبیلٹی ٹیسٹنگ، کلر بلائنڈنس سمولیشن، SQLite ڈیٹا بیس مائیگریشن ٹیسٹنگ، Nimble میچرز، SwiftUI پری ویو اسنیپ شاٹس، HTML اسنیپ شاٹ ٹیسٹنگ اور مزید شامل ہیں۔ ## متعلقہ ٹولز `iOSSnapshotTestCase` اور Jest سے متاثر، یہ لائبریری ایک بہتر صارف تجربے کے ساتھ عمومی اسنیپ شاٹ ٹیسٹنگ کو سوئفٹ میں لاتی ہے۔ ## لائسنس MIT لائسنس کے تحت جاری کیا گیا۔