The Chromium Chronicle #17: مجموعات اختبار المتصفّح

الحلقة 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، ولكن لحسن الحظ أن الفئة الأساسية هي للأغراض العامة وخفيفة الحجم.

المراجِع