Menulis Ujian Mudah untuk Klien-Go Menggunakan Klien Palsu
Masalah:
Bagaimana anda boleh berkesan kod ujian yang bergantung pada pakej klien-go Kubernetes menggunakan klien palsu?
Gambaran Keseluruhan Fungsi:
Fungsi yang disediakan GetNamespaceCreationTime mendapatkan semula masa penciptaan ruang nama. Ia biasanya mengakses API Kubernetes sebenar untuk mengambil maklumat, tetapi untuk tujuan ujian, anda perlu mengasingkan fungsi daripada API sebenar dan sebaliknya menggunakan klien palsu.
Struktur Ujian:
Ujian harus memulakan klien palsu, menyerahkannya kepada fungsi yang sedang diuji dan mengesahkan kelakuan fungsi tersebut berdasarkan interaksi dengan klien palsu.
Menggunakan Config daripada Fake Clientset:
Dalam fungsi ujian, anda harus mencipta set klien palsu menggunakan fake.NewSimpleClientset(). Set klien palsu ini menyediakan pelbagai kaedah untuk berinteraksi dengan objek palsu. Mengkonfigurasi objek konfigurasi dengan set klien palsu adalah tidak perlu kerana klien palsu sudah mengendalikan semua konfigurasi dalaman.
Mengasingkan Konfigurasi Dalam Kluster:
Untuk menggunakan klien palsu secara konsisten dalam ujian , adalah dinasihatkan untuk mengasingkan langkah mendapatkan konfigurasi dalam kelompok dan mencipta klien Kubernetes. Memperkenalkan fungsi berasingan untuk mendapatkan semula set klien, yang boleh ditindih semasa ujian untuk mengembalikan set klien palsu.
Fungsi Ujian Contoh:
Fungsi ujian kemudiannya boleh membuat instantiate set klien palsu, panggil fungsi di bawah ujian lulus set klien palsu, dan tegaskan tingkah laku yang dijangkakan:
<code class="go">func TestGetNamespaceCreationTime(t *testing.T) { fakeClient := fake.NewSimpleClientset() got := GetNamespaceCreationTime(fakeClient, "default") want := int64(1257894000) // Assertions on how the fake client was interacted with go here }</code>
Petua Tambahan untuk Mengejek dan Suntikan:
Untuk senario suntikan ejekan dan pergantungan yang lebih maju, pertimbangkan untuk menggunakan rangka kerja suntikan pergantungan seperti Testify atau GoMock. Rangka kerja ini membantu anda membuat ujian unit terpencil dan boleh disahkan.
Atas ialah kandungan terperinci Cara Menguji Client-Go dengan Berkesan dengan Pelanggan Palsu: Mencipta Ujian Unit Terpencil dan Boleh Disahkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!