Menangkap Argumen dengan ArgumentCaptor
Gunakan ArgumentCaptor Mockito untuk menangkap dan menegaskan objek tepat yang dihantar kepada mock dalam senario yang kompleks.
Menangkap Argumen dengan ArgumentCaptor ialah pelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi merangkumi sejumlah 4 pelajaran.
Memeriksa Perkara yang Dihantar
Kadang-kadang, mengesahkan bahawa sesuatu kaedah telah dipanggil masih belum mencukupi. Anda perlu membuat penegasan terhadap argumen sebenar yang dibina dan dihantar oleh kod. Mockito's ArgumentCaptor mendapatkan nilai tersebut untuk diperiksa.
Pemadan berbanding Penangkap
Pemadan argumen seperti eq(...) menyemak input semasa pengesahan. Sebaliknya, penangkap merekodkan argumen supaya anda boleh menjalankan penegasan yang terperinci selepas itu.
Mencipta Penangkap
Isytiharkan penangkap untuk jenis yang anda jangka akan ditangkap.
ArgumentCaptor<User> captor =
ArgumentCaptor.forClass(User.class);Menangkap Semasa Pengesahan
Hantar capture() milik penangkap pada tempat argumen sepatutnya berada di dalam verify.
verify(repo).save(captor.capture());Membaca Nilai
Selepas pengesahan, dapatkan objek yang ditangkap dan buat penegasan terhadap medannya.
User saved = captor.getValue();
assertEquals("Ada", saved.getName());Contoh Lengkap
Di sini kami mengesahkan bahawa perkhidmatan membina pengguna yang betul sebelum menyimpannya.
service.register("Ada", "ada@x.io");
verify(repo).save(captor.capture());
assertEquals("ada@x.io",
captor.getValue().getEmail());Menangkap Beberapa Panggilan
Jika kaedah tersebut dipanggil beberapa kali, gunakan getAllValues() untuk mendapatkan setiap argumen yang ditangkap mengikut turutan.
verify(repo, times(2)).save(captor.capture());
List<User> all = captor.getAllValues();Anotasi @Captor
Anda boleh mengisytiharkan penangkap sebagai medan dengan @Captor apabila menggunakan sambungan Mockito, sekali gus mengurangkan kod berulang.
@Captor
ArgumentCaptor<User> captor;Penangkap atau Pemadan?
Gunakan pemadan untuk semakan kesamaan yang mudah semasa panggilan. Gunakan penangkap apabila argumen itu kompleks, dibina secara dalaman atau memerlukan beberapa penegasan.
Elakkan Penggunaan Berlebihan
Penangkap mengikat ujian kepada butiran pembinaan dalaman. Utamakan penggunaannya untuk argumen yang benar-benar kompleks, bukan untuk segala-galanya, supaya ujian kekal tahan perubahan.
Mengapa Hal Ini Penting
Penangkap membolehkan anda mengesahkan data tepat yang dihantar oleh kod kepada komponen kerjasama, sekali gus mengesan pepijat pemetaan atau transformasi yang sukar dilihat.
Semakan Pantas
Bagaimanakah anda mendapatkan argumen yang ditangkap selepas pengesahan?
Ringkasan
Anda telah mempelajari penangkapan argumen:
ArgumentCaptor.forClassatau@Captormencipta penangkap- Hantar
capture()di dalamverify getValue()/getAllValues()membaca data yang ditangkap- Gunakan penangkap untuk argumen yang kompleks dan dibina secara dalaman
Pelajari Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Menangkap Argumen dengan ArgumentCaptor” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi, termasuk “Menangkap Argumen dengan ArgumentCaptor”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menangkap Argumen dengan ArgumentCaptor”?
Gunakan ArgumentCaptor Mockito untuk menangkap dan menegaskan objek tepat yang dihantar kepada mock dalam senario yang kompleks. Anda berlatih Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Menangkap Argumen dengan ArgumentCaptor” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi ini?
Ya. Setiap pelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Jawapan Tersuai dan Panggilan Balik
- Mock Kaedah Statik dan Pembina
- Amalan Terbaik Mockito
- Menangkap Argumen dengan ArgumentCaptor