"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية اختبار كود Client-Go مع عميل مزيف؟

كيفية اختبار كود Client-Go مع عميل مزيف؟

تم النشر بتاريخ 2024-11-08
تصفح:527

How to Test Client-Go Code with a Fake Client?

اختبار كود Client-Go مع عميل مزيف

بيان المشكلة

أثناء تنفيذ وظيفة GetNamespaceCreationTime، واجهت تحديًا في كتابة اختبارات الوحدة الشاملة. تتفاعل وظيفة GetNamespaceCreationTime مع خادم Kubernetes API لجلب تفاصيل مساحة الاسم. هذا جعل من الصعب كتابة اختبارات معزولة دون الاعتماد على تفاعلات واجهة برمجة التطبيقات الفعلية.

الحل باستخدام العميل المزيف

توفر الحزمة المزيفة في مكتبة Client-go طريقة لإنشاء عملاء مزيفين يمكن تستخدم لأغراض الاختبار. يحاكي هؤلاء العملاء المزيفون سلوك العملاء الحقيقيين ولكنهم يعملون في بيئة خاضعة للرقابة.

في هذه الحالة، يمكنك استخدام وظيفة NewSimpleClientset من الحزمة المزيفة لإنشاء عميل Kubernetes مزيف. يمكن استخدام هذا العميل ليحل محل العميل الحقيقي في اختبارات الوحدة الخاصة بك، مما يسمح لك بعزل سلوك التعليمات البرمجية الخاصة بك والتركيز على منطق الاختبار.

تنفيذ الاختبار

لاختبار وظيفة GetNamespaceCreationTime ، يمكنك إنشاء حالة اختبار كما يلي:

func TestGetNamespaceCreationTime(t *testing.T) {
  fakeClient := fake.NewSimpleClientset()
  got := GetNamespaceCreationTime(fakeClient, "default")
  want := int64(1257894000)

  // Inject mock Namespace data into the fake client
  nsMock := fakeClient.CoreV1().Namespaces()
  nsMock.Create(&v1.Namespace{
    ObjectMeta: metav1.ObjectMeta{
      Name:              "default",
      CreationTimestamp: metav1.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC),
    },
  })

  if got != want {
    t.Errorf("got %q want %q", got, want)
  }
}

في هذا الاختبار، يمكنك إنشاء عميل مزيف، والذي يحل محل عميل Kubernetes الحقيقي. ثم تقوم بإدخال بيانات مساحة اسم وهمية في العميل المزيف. يتيح لك هذا محاكاة الاستجابة التي تتوقعها من خادم API عند جلب وقت إنشاء مساحة الاسم. يمكنك بعد ذلك التأكد من أن إخراج الدالة GetNamespaceCreationTime يطابق القيمة المتوقعة.

فوائد استخدام عميل مزيف

يوفر استخدام عميل مزيف في اختبارات الوحدة الخاصة بك العديد من الفوائد:

  • العزل: يعزل رمز الاختبار عن الآثار الجانبية المحتملة الناجمة عن التفاعلات مع الجهات الخارجية الموارد.
  • السرعة: تعمل اختبارات الوحدة مع العملاء المزيفين بشكل أسرع بكثير من تلك التي تتضمن مكالمات API حقيقية.
  • الحتمية: يضمن الاتساق ويمكن التنبؤ به النتائج، حيث يتم التحكم في سلوك العميل المزيف عن طريق كود الاختبار.
بيان الافراج أعيد طبع هذه المقالة على: 1729745001 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3