প্রকল্প সম্পর্কে

# 📸 SnapshotTesting আনন্দদায়ক Swift স্ন্যাপশট টেস্টিং। এই লাইব্রেরিটি আপনাকে যেকোনো Swift প্ল্যাটফর্মে যেকোনো মানের জন্য যেকোনো ফরম্যাটে স্ন্যাপশট টেস্ট লিখতে দেয়। এটি ভিউ, ভিউ কন্ট্রোলার, 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 থেকে বা ফাইল URL পরিদর্শন করে ব্যর্থতাগুলো পরীক্ষা করা যায়। আপনি ইনলাইনে স্ন্যাপশট কাস্টমাইজ করে বা `withSnapshotTesting` টুল ব্যবহার করে নতুন রেফারেন্স রেকর্ড করতে পারেন। ## যেকোনো কিছু স্ন্যাপশট করুন বেশিরভাগ স্ন্যাপশট টেস্টিং লাইব্রেরি `UIView`-এর `UIImage`-এ সীমাবদ্ধ থাকলেও, SnapshotTesting যেকোনো Swift প্ল্যাটফর্মে যেকোনো মানের যেকোনো ফরম্যাটে কাজ করে। `assertSnapshot` ফাংশন একটি মান এবং সেই মানটি যে কোনো স্ন্যাপশট স্ট্র্যাটেজি সমর্থন করে তা গ্রহণ করে। ভিউ টেস্টিং অত্যন্ত কনফিগারযোগ্য। আপনি ট্রেইট কালেকশন ওভাররাইড করতে পারেন এবং একটি সিমুলেটর থেকে ডিভাইস-অজ্ঞেয় স্ন্যাপশট তৈরি করতে পারেন। উপলব্ধ স্ন্যাপশট স্ট্র্যাটেজিগুলোর মধ্যে রয়েছে: - ভিউ এবং ভিউ কন্ট্রোলারের জন্য `.image` - ভিউ হায়ারার্কির টেক্সটুয়াল উপস্থাপনার জন্য `.recursiveDescription` - URL রিকোয়েস্টের জন্য `.raw` - `Encodable` মানের জন্য `.json` এবং `.plist` - এর মিরর ব্যবহার করে যেকোনো মানের জন্য `.dump` ## বৈশিষ্ট্য - ডজনখানেক স্ন্যাপশট স্ট্র্যাটেজি - নিজের স্ন্যাপশট স্ট্র্যাটেজি লিখুন - কোনো কনফিগারেশনের প্রয়োজন নেই - আরও হ্যান্ডস-অফ: নতুন স্ন্যাপশট স্বয়ংক্রিয়ভাবে রেকর্ড হয় - সাবক্লাস-মুক্ত: যেকোনো XCTest কেস বা Quick স্পেক থেকে অ্যাসার্ট করুন - ডিভাইস-অজ্ঞেয় স্ন্যাপশট - XCTest অ্যাটাচমেন্ট হিসেবে ইমেজ ডিফারেন্সসহ প্রথম-শ্রেণির Xcode সমর্থন - Swift সমর্থনকারী যেকোনো প্ল্যাটফর্ম সমর্থন করে (iOS, Linux, macOS, tvOS) - SceneKit, SpriteKit এবং WebKit সমর্থন - `Codable` সমর্থন - কাস্টম ডিফ টুল ইন্টিগ্রেশন ## ইনস্টলেশন ### Xcode Swift Packages-এর মাধ্যমে প্যাকেজ যোগ করুন, নিশ্চিত করুন এটি একটি টেস্ট টার্গেটে যোগ করা হয়েছে। ### Swift Package Manager `Package.swift`-এ প্যাকেজটি একটি ডিপেন্ডেন্সি হিসেবে যোগ করুন এবং আপনার টেস্ট টার্গেটে `SnapshotTesting` যোগ করুন। ## প্লাগ-ইন বেশ কিছু কমিউনিটি প্লাগ-ইন কার্যকারিতা বাড়ায়, যার মধ্যে রয়েছে অ্যাক্সেসিবিলিটি টেস্টিং, কালার ব্লাইন্ডনেস সিমুলেশন, SQLite ডেটাবেস মাইগ্রেশন টেস্টিং, Nimble ম্যাচার, SwiftUI প্রিভিউ স্ন্যাপশট, HTML স্ন্যাপশট টেস্টিং এবং আরও অনেক কিছু। ## সম্পর্কিত টুল `iOSSnapshotTestCase` এবং Jest দ্বারা অনুপ্রাণিত, এই লাইব্রেরিটি একটি পরিমার্জিত ব্যবহারকারী অভিজ্ঞতাসহ Swift-এ সাধারণীকৃত স্ন্যাপশট টেস্টিং নিয়ে আসে। ## লাইসেন্স MIT লাইসেন্সের অধীনে প্রকাশিত।