اختبار Swift: من أين يبدأ المطور المبتدئ

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

لماذا الاختبار ليس مجرد "علامة صح"، بل هو شريان النجاة الخاص بك

\n\n

تخيل: لقد كتبت تطبيقًا رائعًا بلغة Swift، كل شيء يعمل، أصدقاؤك منبهرون. ولكن بعد أسبوع، تضيف ميزة جديدة - وفجأة! كل شيء ينهار. هل هذا مألوف؟ إذا لم يكن كذلك - فأنت إما عبقري، أو لم تواجه بعد التطوير الحقيقي. اختبار الكود ليس إلزامًا مملًا، بل هو أداة توفر ساعات من التوتر وتجعلك مطورًا واثقًا.

\n\n

في هذه المقالة، سنشرح من أين تبدأ اختبار Swift إذا كنت مبتدئًا. ستتعرف على ما هو XCTest، وكيفية كتابة اختبارات الوحدة واختبارات واجهة المستخدم، وستحصل على أمثلة جاهزة للكود. هيا بنا!

\n\n

ما هو الاختبار في Swift ولماذا هو ضروري

\n\n

الاختبار هو عملية التحقق من أن الكود الخاص بك يفعل بالضبط ما تتوقعه منه. في عالم Swift، الإطار الرئيسي لذلك هو XCTest. إنه مدمج في Xcode ويسمح لك بكتابة اختبارات من أي مستوى: من التحقق من دالة واحدة إلى محاكاة نقرات المستخدم على الأزرار.

\n\n

إليك ثلاثة أسباب رئيسية تجعلك تتقن اختبار Swift الآن:

\n
    \n
  • الثقة في الكود. تتوقف عن الخوف من تغيير أو إعادة هيكلة أي شيء - الاختبارات ستغطيك.
  • \n
  • توفير الوقت. من الأفضل قضاء 10 دقائق في اختبار بدلاً من ساعتين في البحث عن خطأ في الإنتاج.
  • \n
  • التوثيق. الاختبارات هي توثيق حي للكود الخاص بك. مطور جديد (أو أنت بعد شهر) سيفهم المنطق دون كلمات زائدة.
  • \n
\n\n

للمبتدئين، قد يبدو اختبار iOS معقدًا، لكن في الواقع الخطوة الأولى تستغرق 5 دقائق.

\n\n

إعداد البيئة: أول اختبار في 5 دقائق

\n\n

افتح Xcode وأنشئ مشروعًا جديدًا (File → New → Project → App). تأكد من أن علامة Include Tests نشطة. سيقوم Xcode تلقائيًا بإنشاء هدفين:

\n
    \n
  • YourAppTests - لاختبارات الوحدة.
  • \n
  • YourAppUITests - لاختبارات واجهة المستخدم.
  • \n
\n\n

إذا كان المشروع موجودًا بالفعل، أضف هدف الاختبار يدويًا: File → New → Target → iOS Unit Testing Bundle.

\n\n

الآن انقر على ملف YourAppTests.swift. سترى قالبًا لفئة موروثة من XCTestCase. احذف كل شيء واكتب أول اختبار لك:

\n\n
import XCTest\n@testable import YourApp\n\nfinal class FirstTests: XCTestCase {\n\n    func testExample() {\n        let result = 2 + 2\n        XCTAssertEqual(result, 4, "الرياضيات خذلتنا!")\n    }\n}\n
\n\n

اضغط على المعين على يسار السطر func testExample واختر Test. إذا ظهرت علامة صح خضراء - فقد كتبت للتو أول اختبار وحدة لك بلغة Swift! تهانينا.

\n\n

لاحظ @testable import YourApp. هذا سطر رئيسي: يفتح الوصول إلى الفئات الداخلية لتطبيقك حتى تتمكن الاختبارات من رؤيتها.

\n\n

اختبارات الوحدة: التحقق من منطق التطبيق

\n\n

اختبارات الوحدة هي الأساس. تتحقق من الدوال أو الطرق أو الفئات الفردية. دعنا نكتب اختبارًا لآلة حاسبة بسيطة.

\n\n

إنشاء الكود للاختبار

\n\n

أضف ملف Swift جديد إلى الهدف الرئيسي (وليس إلى الاختبارات!) بالفئة:

\n\n
import Foundation\n\nstruct Calculator {\n    func add(_ a: Int, _ b: Int) -> Int {\n        return a + b\n    }\n    \n    func divide(_ a: Int, _ b: Int) throws -> Int {\n        guard b != 0 else {\n            throw CalculationError.divisionByZero\n        }\n        return a / b\n    }\n}\n\nenum CalculationError: Error {\n    case divisionByZero\n}\n
\n\n

كتابة الاختبارات

\n\n

في ملف الاختبار (أذكرك، هو في مجموعة YourAppTests) سنكتب:

\n\n
import XCTest\n@testable import YourApp\n\nfinal class CalculatorTests: XCTestCase {\n\n    var calculator: Calculator!\n\n    override func setUpWithError() throws {\n        calculator = Calculator()\n    }\n\n    override func tearDownWithError()                

المدونات

توصيات الكتب