ตอนที่ 17: โดย Toby Huang ในซานฟรานซิสโก แคลิฟอร์เนีย (มกราคม 2021)
ตอนก่อนหน้า
การทดสอบเบราว์เซอร์เป็นรูปแบบการทดสอบอัตโนมัติสำหรับโค้ด Chromium ซึ่ง จากต้นทางถึงปลายทาง มากกว่าการทดสอบ 1 หน่วย การทดสอบเบราว์เซอร์จะสร้างอินสแตนซ์เบราว์เซอร์และทดสอบ องค์ประกอบ UI ที่หลากหลาย แทนที่จะต้องทดสอบฟังก์ชันอินพุต/เอาต์พุตเพียงอย่างเดียว เช่นเดียวกับที่การทดสอบ 1 หน่วยทำ การทดสอบอัตโนมัติแบบผสานรวมเป็นสิ่งสำคัญในการจําลอง ประสบการณ์ตั้งแต่ต้นจนจบของผู้ใช้ เมื่อเขียนทดสอบเบราว์เซอร์ คุณมักต้องการ เพื่อดำเนินการตั้งค่าแบบเป็นโปรแกรมที่ผู้ใช้ทำได้ด้วยตนเอง เพื่อช่วยคุณในการดำเนินการดังกล่าว มิกซ์อินคือชุดเครื่องมือสำหรับการแสดงแบบไม่สำคัญ การตั้งค่าการทดสอบเบราว์เซอร์ในแบบที่ใช้ซ้ำได้
ตัวอย่างการมิกซ์ที่มีประโยชน์
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}; };
ประโยชน์หลักๆ อย่างหนึ่งของมิกซ์อินคือการใช้การเรียบเรียงเพลงแทน
การสืบทอดค่าเกณฑ์ และการหลีกเลี่ยงปัญหาการสืบทอดค่าเพชรหลายรายการ
การรับค่าจากคลาสพื้นฐานทดสอบมากกว่า 1 รายการจะนำไปสู่ปัญหาระดับไดมอนด์
แต่คุณสามารถเลือกใช้มิกซ์แอนด์แมตช์ได้โดยหลีกเลี่ยงปัญหานี้ การใช้มิกซ์อิน
ไม่ได้กำจัดการสืบทอดค่าโดยสิ้นเชิงเนื่องจากคลาสการทดสอบเบราว์เซอร์ยังคง
ต้องรับค่าจาก MixinBasedInProcessBrowserTest
แต่โชคดีที่
คลาสพื้นฐานมีไว้สำหรับวัตถุประสงค์ทั่วไปและใช้ทรัพยากรน้อย