Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi · Pelajaran

Menangkap Argumen dengan ArgumentCaptor

Gunakan ArgumentCaptor Mockito untuk menangkap dan menegaskan objek tepat yang dihantar kepada mock dalam senario yang kompleks.

Pelajaran 4 daripada 413 langkah

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.forClass atau @Captor mencipta penangkap
  • Hantar capture() di dalam verify
  • getValue() / getAllValues() membaca data yang ditangkap
  • Gunakan penangkap untuk argumen yang kompleks dan dibina secara dalaman
Percuma untuk bermula

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

  1. Jawapan Tersuai dan Panggilan Balik
  2. Mock Kaedah Statik dan Pembina
  3. Amalan Terbaik Mockito
  4. Menangkap Argumen dengan ArgumentCaptor
← Kembali ke Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi