The Chromium Chronicle #17: ब्राउज़र टेस्ट मिक्सिन

एपिसोड 17: सैन फ़्रांसिस्को, कैलिफ़ोर्निया में टोबी हुआंग की पेशकश (जनवरी 2021)
पिछले एपिसोड

ब्राउज़र की जांच, Chromium कोड के लिए अपने-आप होने वाली जांच है. शुरू से लेकर आखिर तक यूनिट की जांच कर सकते हैं. ब्राउज़र परीक्षण, ब्राउज़र इंस्टेंस और परीक्षण बनाते हैं सिर्फ़ इनपुट/आउटपुट फ़ंक्शन की जांच करने के बजाय कई यूज़र इंटरफ़ेस (यूआई) एलिमेंट जैसे यूनिट टेस्ट करते हैं. सिम्युलेट करने के लिए, इंटिग्रेट की गई ऑटोमेटेड टेस्टिंग ज़रूरी है उपयोगकर्ता के अनुभव को बेहतर बनाना है. ब्राउज़र टेस्ट लिखते समय, आपको अक्सर प्रोग्राम बनाकर सेटअप कार्रवाइयां करें जिन्हें उपयोगकर्ता मैन्युअल तरीके से कर सकता है. ऐसा करने में आपकी मदद करने के लिए, मिक्सिन ऐसे टूल का सुइट हैं जिनका इस्तेमाल सामान्य कॉन्टेंट को कैलकुलेट करने के लिए किया जाता है ब्राउज़र की जांच को फिर से इस्तेमाल करने लायक तरीके से सेटअप किया है.

उपयोगी मिक्सिन के उदाहरण:

  • गुप्त मोड की जांच करने के लिए GuestUserMixin
  • सर्वर से उपयोगकर्ता नीति की नकल करने के लिए UserPolicyMixin
  • GAIA सर्वर से मॉक रिस्पॉन्स देने के लिए, FakeGaiaMixin

अलग-अलग कामों को पूरा करने के लिए, अपनी पसंद के मुताबिक मिक्सिन बनाए जा सकते हैं!

नीचे दिया गया स्निपेट आपकी जांच के लिए, मेहमान उपयोगकर्ता के तौर पर लॉग इन करता है. यह ज़रूरी है कि पक्का करें कि आपकी सुविधा गुप्त मोड में काम करती हो.

यह करें
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 से इनहेरिट करना ज़रूरी है, लेकिन अच्छी बात यह है कि बेस क्लास सामान्य उद्देश्य और कम वज़न वाली है.

संसाधन