פרק 17: מאת טובי הואנג בסן פרנסיסקו, קליפורניה (ינואר 2021)
הפרקים הקודמים
בדיקות דפדפן הן סוג של בדיקה אוטומטית של קוד כרום, מקצה לקצה לעומת בדיקות יחידה. בדיקות דפדפן יוצרות מופעי דפדפן ובדיקות באלמנטים שונים של ממשק משתמש במקום לבדוק רק פונקציונליות של קלט/פלט כמו שעושים בבדיקות יחידה. בדיקות אוטומטיות משולבות חשובות לצורך סימולציה חוויית משתמש מקצה לקצה. כאשר כותבים בדיקת דפדפן, לעיתים קרובות רוצים כדי לבצע באופן פרוגרמטי פעולות הגדרה שהמשתמש יכול לבצע באופן ידני. כדי לעזור לך בכך, מיקסים הם חבילה של כלים לביצוע להגדיר את בדיקת הדפדפן באופן חוזר.
דוגמאות למיקסים שימושיים:
GuestUserMixin
לבדיקה של מצב פרטיUserPolicyMixin
להדמיה של מדיניות משתמש מהשרתFakeGaiaMixin
לתגובות לעג משרת Gaia
אתם יכולים ליצור מיקסים בהתאמה אישית כדי לשרת מגוון רחב של מטרות.
קטע הקוד שלמטה מתחבר כמשתמש אורח לבדיקה. חשוב מוודאים שהתכונה פועלת במצב פרטי.
class MyGuestBrowserTestClass : public MixinBasedInProcessBrowserTest { private: GuestSessionMixin guest_session_mixin_{&mixin_host_}; };
דרך נוחה להתחבר כמשתמש של Family Link באמצעות LoggedInUserMixin
את הבדיקה שלך. אם התכונה משפיעה על כל דבר שקשור לפיקוח על ילדים,
כדאי לבדוק את התכונה עבור משתמשים בפיקוח. באג אפשרי
לשכוח שמצב פרטי מופעל אצל משתמשים קטינים או שהם לא יכולים להתקין
תוספים ללא אישור הורה. 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
, אבל למזלנו
סיווג הבסיס הוא לשימוש כללי וקל משקל.