0Pricing
Swift Academy · درس

عائلة XCTAssert والتأكيدات التي تطلق الأخطاء

استخدموا XCTAssertEqual وXCTAssertThrowsError وXCTUnwrap بأمان.

عائلة XCTAssert والتأكيدات التي تطلق الأخطاء درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

XCTAssert وXCTAssertTrue

يفشل XCTAssert وXCTAssertTrue إذا كان الشرط خاطئًا.

XCTAssert(user.isLoggedIn)
XCTAssertTrue(cart.isEmpty, "Cart should be empty after clear()")

XCTAssertFalse

يفشل XCTAssertFalse إذا كان الشرط صحيحًا.

XCTAssertFalse(session.isExpired, "Fresh session should not be expired")

XCTAssertEqual

يفشل XCTAssertEqual إذا لم تكن القيمتان متساويتين. يجب أن تكون كلتا القيمتين من النوع Equatable.

XCTAssertEqual(calculator.add(2, 3), 5)
XCTAssertEqual(user.name, "Alice", "Name should match the fixture")

XCTAssertNotEqual

يفشل XCTAssertNotEqual إذا كانت القيمتان متساويتين.

XCTAssertNotEqual(originalHash, updatedHash)

XCTAssertNil وXCTAssertNotNil

اختبر القيم الاختيارية: يفشل الاختبار إذا لم تكن القيمة nil أو إذا كانت nil، على التوالي.

XCTAssertNil(service.error, "No error expected after successful fetch")
XCTAssertNotNil(result, "Result should be non-nil on success")

XCTAssertThrowsError

يفشل الاختبار إذا لم يُلقِ التعبير خطأً. ويمكنك اختياريًا فحص الخطأ المُلقى.

XCTAssertThrowsError(try parser.parse("invalid json")) { error in
  XCTAssertEqual(error as? ParseError, .invalidInput)
}

XCTAssertNoThrow

يفشل الاختبار إذا ألقى التعبير خطأً.

XCTAssertNoThrow(try parser.parse(validJSON))

XCTUnwrap

يفك XCTUnwrap قيمة Optional ويفشل الاختبار إذا كانت nil، وهو أوضح من استخدام guard let مع XCTFail.

let user = try XCTUnwrap(service.currentUser)
XCTAssertEqual(user.name, "Bob")

XCTAssertEqual مع الدقة

عند مقارنة الأعداد ذات الفاصلة العائمة، حدّد قيمة للدقة لمراعاة فروق التقريب.

XCTAssertEqual(result, 3.14159, accuracy: 0.0001)

رسائل فشل مخصصة

تقبل جميع دوال XCTAssert معامل رسالة اختياريًا لإظهار مخرجات فشل أوضح.

XCTAssertEqual(items.count, 3, "Expected 3 items after insert, got \(items.count)")

XCTExpectFailure

علّم الإخفاقات المتوقعة حتى تُبلّغ على أنها نجاحات في CI، وهذا مفيد للأخطاء المعروفة التي لم تُصلح بعد.

XCTExpectFailure("Known issue: rdar://12345") {
  XCTAssertEqual(brokenFunction(), expectedValue)
}

تحقق سريع

ما دالة XCTest التي تفك قيمة Optional بأمان وتفشل الاختبار إذا كانت nil؟

مراجعة الدرس

تشمل عائلة تأكيدات XCTest: XCTAssert/True/False وXCTAssertEqual/NotEqual وXCTAssertNil/NotNil وXCTAssertThrowsError/NoThrow وXCTUnwrap. أضف دائمًا رسائل وصفية. استخدم XCTExpectFailure لتتبع الإخفاقات المعروفة.

الأسئلة الشائعة

هل درس «عائلة XCTAssert والتأكيدات التي تطلق الأخطاء» مجاني؟

نعم — نص درس «عائلة XCTAssert والتأكيدات التي تطلق الأخطاء» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «عائلة XCTAssert والتأكيدات التي تطلق الأخطاء»؟

استخدموا XCTAssertEqual وXCTAssertThrowsError وXCTUnwrap بأمان. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «عائلة XCTAssert والتأكيدات التي تطلق الأخطاء»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إعداد X​​CTestCase والتنظيف وطرائق الاختبار
  2. عائلة XCTAssert والتأكيدات التي تطلق الأخطاء
  3. المحاكاة المعتمدة على البروتوكولات وحقن التبعيات
  4. الاختبارات غير المتزامنة وقياس الأداء
← العودة إلى Swift Academy