Pustaka unittest Python membantu Anda menguji kode aplikasi Anda untuk kesalahan dengan cara otomatis. Itu salah satu metode pengujian yang dibahas dalam panduan kami,. Pengujian tiruan sangat berguna saat kode Anda belum selesai dan pengembangan Anda sedang berlangsung. Itu melakukan pengujian berkelanjutan selama pengembangan dan memberikan wawasan yang baik tentang bagaimana suatu aplikasi pada akhirnya dapat berfungsi. Panduan ini menunjukkan cara menggunakan pustaka unittest Python untuk membuat objek tiruan untuk menguji kode Anda Show
Apa Tujuan Objek Mock dalam Pengujian Unit?Pengujian aplikasi dan unit memeriksa cara kerja kode Anda dalam berbagai situasi. Pengembang menggunakan sejumlah pendekatan untuk melakukan pengujian, namun tiga pendekatan yang paling populer dijelaskan di bawah ini
Sebagian besar pengembang menggunakan kerangka kerja khusus, seperti perpustakaan unittest Python, untuk membuat tiruan, dan bertopik. Pemalsuan umumnya dikodekan tanpa bantuan perpustakaan atau kerangka kerja Dalam pengujian tiruan, unittest bergantung pada objek tiruan. Objek tiruan ini dirancang untuk menerima jenis parameter input yang sama dengan objek yang sedang diuji. Itu juga harus memiliki tipe pengembalian yang sama dengan objek pengujiannya. Patch tiruan Python adalah deklarasi yang menggantikan fungsi sebenarnya hingga fungsi sebenarnya tersedia. Tambalan ditulis sebagai dekorator fungsi. Saat fungsi tersedia, tambalan dibatalkan. Mocks digunakan dalam skenario berikut
Pustaka Objek Mock Python yang paling unikPustaka objek mock unittest Python memungkinkan Anda untuk menguji area aplikasi Anda dengan objek tiruan dan dengan pernyataan. Satu keuntungan besar menggunakan objek tiruan adalah bahwa kode pengujian terletak di satu lokasi pusat. Teknik pengujian lainnya, seperti stubbing, mengharuskan Anda menambahkan stub di seluruh kode, yang dapat mempersulit pemeliharaan pengujian Anda Membuat Objek Mock BaruBekerja dengan tiruan berbeda dengan bekerja dengan objek standar. Mock dapat melakukan pernyataan dan membuat hasil yang konsisten dengan menyetel metode objek ke nilai tertentu. Objek tiruan juga dapat mencari efek samping yang dihasilkan dari melakukan panggilan tertentu. Namun, tiruan bukanlah kode asli. Objek tiruan berperilaku seperti objek "asli", tetapi tidak mengubah kode Anda. Langkah-langkah berikut membahas beberapa dasar objek tiruan untuk mencontohkan apa yang dapat dicapai oleh tiruan Catatan Anda dapat menjalankan langkah-langkah di bagian berikut menggunakan juru bahasa Python komputer Anda. Untuk mengakses juru bahasa Python, keluarkan perintah berikut
Anda akan melihat prompt juru bahasa Python _
Menggunakan Statistik MockSaat aplikasi terlalu rumit untuk melakukan analisis langkah demi langkah dari setiap panggilan tiruan, gunakan statistik tiruan untuk menentukan kesehatan aplikasi. Langkah-langkah di bagian ini menunjukkan cara kerja statistik objek tiruan. Bagian ini bergantung pada objek _9 yang Anda buat di bagian iniSalah satu statistik yang paling membantu adalah berapa kali tiruan tertentu dipanggil. Jika Anda mengharapkan lima panggilan ke suatu fungsi atau objek dan hanya mendapatkan empat, ada masalah. Gunakan kode di bawah ini untuk melihat cara kerja properti 0 _0Terkadang Anda perlu tahu bagaimana suatu metode dipanggil. Misalnya, dengan _1, Anda perlu tahu, tidak hanya seberapa sering disebut, tetapi dengan argumen apa. Anda memiliki dua opsi. minta hanya informasi panggilan terbaru menggunakan _2 atau minta semua informasi panggilan menggunakan 3. Anda dapat menggunakan keduanya seperti yang ditunjukkan di bawah ini _1Untuk mengetahui bagaimana mock dipanggil dan bagaimana urutan panggilan datang, properti 4 membantu Anda mendapatkan informasi ini _2Keluaran dari panggilan ini menampilkan daftar pemanggilan metode dalam urutan kemunculannya seperti berikut ini _3Objek MagicMockObjek _5 adalah bagian dari objek 6. Ini memberikan nilai wajar, seperti nilai kembalian untuk pemanggilan metode umum yang sering muncul di Python. Di bawah ini adalah pemanggilan metode dan hasil defaultnya
Menggunakan _5 memerlukan penyiapan tambahan, tetapi menghemat banyak waktu. Langkah-langkah di bawah ini menunjukkan kepada Anda penggunaan dasar dari objek 5
Patch() Dekorator Python Mock LibraryPatch tiruan Python menyediakan pengganti objek nyata. Ini memberi Anda kendali atas ruang lingkup di mana objek sebenarnya diejek. Setelah objek nyata ada dalam ruang lingkup yang diperlukan, tambalan tidak lagi menyediakan pengganti dan pembersihan dilakukan secara otomatis. Ada dua bentuk metode _29. dekorator dan manajer konteksMereka berdua mencapai hal yang sama; . Bagian ini memberikan metode bekerja dengan bentuk dekorator 29. Langkah-langkah berikut menunjukkan penggunaan dasar 29. Contoh di bawah menyoroti penggunaan dasar tambalan saat pengujian
Anda perlu mengimpor fungsionalitas _39 untuk melakukan pengujian. Paket 40 menyediakan kemampuan untuk menggunakan dekorator 29, dan 5 sebagai pengganti objek. Anda juga memerlukan akses ke file yang sedang diuji (bukan file kelas, tetapi file yang benar-benar menggunakan objek). Untuk menggunakan _43 Anda perlu menentukan yang berikut ini
Penting untuk menyampaikan informasi ini sebagai string sehingga pesan kesalahan Anda berisi informasi yang dapat membantu Anda mengidentifikasi sumber kesalahan Untuk menggunakan tiruan ( _47 dalam kasus ini), berikan parameter untuknya sebagai bagian dari panggilan ke metode pengujian. Contoh ini benar-benar menunjukkan bahwa Anda menggunakan 5 sebagai pengganti 33 dengan membuat berbagai pernyataan. Jadi, sampai Anda benar-benar menelepon _35, 47 belum dipanggil untuk menggantikannya. Setelah Anda memanggil 35 dalam kode, Anda dapat mulai menggunakan berbagai fitur 5 untuk menentukan bagaimana fungsi mocking dilakukanKode menyediakan dua pernyataan cetak untuk memastikan bahwa kode telah berjalan seperti yang diharapkan. Proses yang berhasil tidak menampilkan informasi apa pun kecuali pesan sukses. Pesan sukses mungkin tidak berisi informasi sebanyak yang Anda perlukan untuk debugging. Dua baris kode terakhir dalam file _38 memulai proses pengujian. Ada beberapa metode untuk memulai tes. Salah satu metode tersebut ditunjukkan di bawah iniPada baris perintah ketik _55 dan tekan Enter. Output tes ditunjukkan di bawah ini _8KesimpulanMocking memungkinkan Anda untuk menguji aplikasi Anda saat Anda mengembangkannya, yang mengurangi utang teknis dan biaya pengembangan. Meskipun stubbing dan faking memiliki tempat tersendiri dalam perangkat pengujian Anda, mocking secara signifikan lebih fleksibel daripada metodologi lainnya. Mengejek dapat sangat mengurangi waktu pembersihan untuk rangkaian pengujian Anda nanti. Menggunakan dekorator _29 dalam file terpisah, seperti yang ditunjukkan pada bagian sebelumnya, menghilangkan kebutuhan untuk pembersihan kode nanti. Ini terutama terjadi ketika bekerja dengan aplikasi yang kompleks
Bagaimana Anda mengejek objek dengan Python?Jika Anda ingin meniru objek selama seluruh fungsi pengujian, Anda dapat menggunakan patch() sebagai dekorator fungsi . Fungsi-fungsi ini sekarang ada di file mereka sendiri, terpisah dari pengujiannya. Selanjutnya, Anda akan membuat ulang tes Anda dalam file bernama tes. py.
Bagaimana Anda menulis file tiruan dengan Python?Untuk memalsukan file pembuka dan menulis konten di dalamnya, kita dapat menggunakan mock_open(). . panggil metode kami yang sebenarnya FileWriter(). . tegaskan jika mocked_file dibuka dengan jalur file tertentu. fake_file_path , dan tulis mode terbuka. w Bagaimana cara mengejek suatu objek?Cara Mock Up Java Objek Secara Manual . Buat objek palsu dari kelas/antarmuka nyata Instrumen objek palsu untuk merespons dengan data spesifik untuk setiap metode Verifikasi eksekusi metode pada objek palsu tersebut Verifikasi argumen yang diteruskan dalam metode objek palsu tersebut Lempar Pengecualian opsional untuk beberapa panggilan Bagaimana cara kerja tiruan dengan Python?Mengejek hanyalah tindakan mengganti bagian aplikasi yang Anda uji dengan versi tiruan dari bagian tersebut yang disebut tiruan . Alih-alih memanggil implementasi yang sebenarnya, Anda akan memanggil tiruan, dan kemudian membuat pernyataan tentang apa yang Anda harapkan terjadi. |