الحلقة 17: من تأليف "توبي هوانغ" في سان فرانسيسكو، كاليفورنيا (يناير 2021)
الحلقات السابقة
اختبارات المتصفّح هي شكل من أشكال الاختبار التلقائي لرمز Chromium الذي يُعدّ شاملًا أكثر من اختبارات الوحدات. تنشئ اختبارات المتصفح مثيلات للمتصفح وتختبر عناصر متنوعة لواجهة المستخدم بدلاً من مجرد اختبار وظائف إدخال/إخراج خالصة مثل اختبارات الوحدات. ويعتبر الاختبار التلقائي المتكامل مهمًا لمحاكاة تجربة المستخدم الشاملة. عند كتابة اختبار متصفّح، غالبًا ما تحتاج إلى تنفيذ إجراءات إعداد يمكن للمستخدم تنفيذها يدويًا بشكل آلي. لمساعدتك في ذلك، تعد التشكيلات حزمة من الأدوات لإجراء إعداد بسيط لاختبار المتصفح بطريقة يمكن إعادة استخدامها.
أمثلة على خلطات الطعام المفيدة:
GuestUserMixin
لاختبار وضع التصفّح المتخفيUserPolicyMixin
لمحاكاة سياسة المستخدم من الخادمFakeGaiaMixin
لمحاكاة الاستجابات من خادم Gaia
يمكنك إنشاء تشكيلات مخصّصة لك لخدمة مجموعة متنوعة من الأغراض.
يسجّل المقتطف أدناه الدخول كمستخدم ضيف للاختبار. من المهم التأكد من أن الميزة تعمل في وضع التصفح المتخفي.
class MyGuestBrowserTestClass : public MixinBasedInProcessBrowserTest { private: GuestSessionMixin guest_session_mixin_{&mixin_host_}; };
LoggedInUserMixin
هي طريقة سهلة لتسجيل الدخول كمستخدم في Family Link لإجراء الاختبار. إذا كانت الميزة تؤثر في أي شيء متعلق بالإشراف على الطفل،
عليك اختبار الميزة للمستخدمين الخاضعين للإشراف. من المحتمل أن يكون الخطأ هو حذف
وضع التصفُّح المتخفي للمستخدمين الأطفال أو عدم تمكُّنهم من تثبيت
الإضافات بدون موافقة أحد الوالدَين. LoggedInUserMixin
هو خليط مركّب
مركّب من خلطات أخرى.
class MyChildBrowserTestClass : public MixinBasedInProcessBrowserTest { protected: void SetUpOnMainThread() override { MixinBasedInProcessBrowserTest::SetUpOnMainThread(); logged_in_user_mixin_.LogInUser(); } private: LoggedInUserMixin logged_in_user_mixin_{&mixin_host_, LoggedInUserMixin::LogInType::kChild, embedded_test_server(), this}; };
تتمثل إحدى الفوائد الأساسية للمزيج في استخدام التكوين بدلاً من الوراثة، وتجنب المشاكل المتعلقة بالتوريث المتعدد الماسات.
يؤدي الوراثة من أكثر من فئة أساسية اختبارية إلى مشكلة الماس،
ولكن يمكنك مزج التشكيلات ومطابقتها مع تجنب هذه المشكلة. لا يؤدي استخدام المزج
إلى التخلّص تمامًا من الوراثة لأن فئة اختبار المتصفّح
لا تزال بحاجة إلى الوراثة من MixinBasedInProcessBrowserTest
، ولكن لحسن الحظ أن
الفئة الأساسية هي للأغراض العامة وخفيفة الحجم.