أثناء تنفيذ وظيفة 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 يطابق القيمة المتوقعة.
يوفر استخدام عميل مزيف في اختبارات الوحدة الخاصة بك العديد من الفوائد:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3