قسمت 17: توسط توبی هوانگ در سانفرانسیسکو، کالیفرنیا (ژانویه 2021)
قسمت های قبلی
تستهای مرورگر نوعی آزمایش خودکار برای کد کروم هستند که بیشتر از آزمایشهای واحد، سرتاسری هستند. تستهای مرورگر، نمونههای مرورگر را ایجاد میکنند و به جای آزمایش عملکرد خالص ورودی/خروجی مانند تستهای واحد، عناصر UI مختلف را آزمایش میکنند. تست خودکار یکپارچه برای شبیه سازی تجربه کاربر از پایان به انتها مهم است. هنگام نوشتن یک آزمایش مرورگر، اغلب می خواهید اقدامات راه اندازی را به صورت برنامه نویسی انجام دهید که کاربر می تواند به صورت دستی انجام دهد. برای کمک به شما در انجام این کار، میکسها مجموعهای از ابزارها برای انجام تنظیمات آزمایشی مرورگر غیر پیش پا افتاده به روشی قابل استفاده مجدد هستند.
نمونه هایی از میکسین های مفید:
-
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
ارث بری کند، اما خوشبختانه آن کلاس پایه همه منظوره و سبک است.