ক্রোমিয়াম ক্রনিকল #17: ব্রাউজার টেস্ট মিক্সিন

পর্ব 17: সান ফ্রান্সিসকোতে টবি হুয়াং দ্বারা, CA (জানুয়ারি 2021)
আগের পর্বগুলো

ব্রাউজার পরীক্ষাগুলি ক্রোমিয়াম কোডের জন্য স্বয়ংক্রিয় পরীক্ষার একটি ফর্ম যা ইউনিট পরীক্ষার চেয়ে শেষ থেকে শেষ। ব্রাউজার পরীক্ষাগুলি ব্রাউজার দৃষ্টান্ত তৈরি করে এবং ইউনিট পরীক্ষার মতো খাঁটি ইনপুট/আউটপুট কার্যকারিতা পরীক্ষা করার পরিবর্তে বিভিন্ন UI উপাদান পরীক্ষা করে। ব্যবহারকারীর এন্ড-টু-এন্ড অভিজ্ঞতার অনুকরণের জন্য ইন্টিগ্রেটেড স্বয়ংক্রিয় পরীক্ষা গুরুত্বপূর্ণ। একটি ব্রাউজার পরীক্ষা লেখার সময়, আপনি প্রায়ই প্রোগ্রাম্যাটিকভাবে সেটআপ ক্রিয়া সম্পাদন করতে চান যা ব্যবহারকারী ম্যানুয়ালি করতে পারে। আপনাকে এটি করতে সাহায্য করার জন্য, মিক্সিন হল একটি স্যুট টুলস যা অ-তুচ্ছ ব্রাউজার টেস্ট সেটআপকে পুনরায় ব্যবহারযোগ্য উপায়ে সম্পাদন করার জন্য।

দরকারী মিশ্রণের উদাহরণ:

  • ছদ্মবেশী মোড পরীক্ষার জন্য 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};
};

মিক্সিনের প্রাথমিক সুবিধাগুলির মধ্যে একটি হল উত্তরাধিকারের পরিবর্তে কম্পোজিশন ব্যবহার করা এবং হীরা একাধিক উত্তরাধিকারের সমস্যা এড়ানো । একাধিক টেস্ট বেস ক্লাস থেকে উত্তরাধিকার সূত্রে পাওয়া ডায়মন্ড সমস্যার দিকে নিয়ে যায়, তবে আপনি এই সমস্যাটি এড়িয়ে গিয়ে মিক্সিনগুলিকে মিশ্রিত করতে এবং মেলাতে পারেন৷ Mixins ব্যবহার করা সম্পূর্ণরূপে উত্তরাধিকার থেকে পরিত্রাণ পায় না কারণ ব্রাউজার পরীক্ষার ক্লাসটি এখনও MixinBasedInProcessBrowserTest থেকে উত্তরাধিকারী হওয়া প্রয়োজন, কিন্তু সৌভাগ্যবশত সেই বেস ক্লাসটি সাধারণ-উদ্দেশ্য এবং হালকা ওজনের।

সম্পদ