Chromium Chronicle מס' 17: מיקסים לבדיקת דפדפן

פרק 17: מאת טובי הואנג בסן פרנסיסקו, קליפורניה (ינואר 2021)
הפרקים הקודמים

בדיקות דפדפן הן סוג של בדיקה אוטומטית של קוד כרום, שכוללת יותר מקצה לקצה מאשר בדיקות יחידה. בדיקות דפדפן יוצרות מכונות דפדפן ובודקות רכיבים שונים בממשק המשתמש, במקום לבדוק פונקציונליות טהורה של קלט/פלט כמו שבדיקות יחידה מבצעות. בדיקות אוטומטיות משולבות חשובות להדמיית חוויית המשתמש מקצה לקצה. כשכותבים בדיקת דפדפן, לעיתים קרובות כדאי לבצע פעולות הגדרה באמצעות תכנות שהמשתמש יכול לבצע באופן ידני. כדי לעזור לכם לעשות זאת, מיקסים הם חבילת כלים לביצוע הגדרת בדיקות דפדפן לא טריוויאליות באופן שניתן לעשות בו שימוש חוזר.

דוגמאות למיקסים שימושיים:

  • 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, אבל למרבה המזל, מחלקת הבסיס היא לשימוש כללי וקל מאוד.

מקורות מידע