Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi · Pelajaran

Menulis Ujian Terlebih Dahulu

Berlatih menulis ujian yang gagal untuk mentakrifkan tingkah laku yang dikehendaki sebelum melaksanakan sebarang kod pengeluaran.

Pelajaran 2 daripada 411 langkah

Menulis Ujian Terlebih Dahulu ialah pelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi percuma di CoddyKit. Ini ialah pelajaran 2 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.

Fasa ‘Merah’ TDD

Selamat datang ke teras Pembangunan Dipacu Ujian (TDD)! Dalam pelajaran ini, kita akan mendalami langkah pertama yang penting: menulis ujian yang gagal terlebih dahulu.

Fasa ini sering dipanggil fasa ‘Merah’ dalam kitaran TDD kerana apabila anda menjalankan ujian, anda menjangkakan ‘bar merah’ yang menunjukkan kegagalan.

Mengapa Uji Dahulu?

Menulis ujian untuk kod yang masih belum wujud atau belum dilaksanakan sepenuhnya mungkin terasa berlawanan dengan intuisi. Namun, pendekatan ini menawarkan banyak faedah:

  • Kejelasan: Ia memaksa anda memikirkan perkara yang patut dilakukan oleh kod sebelum memikirkan cara melakukannya.
  • Bukti Kegagalan: Ia membuktikan ujian anda berfungsi dengan betul dengan menunjukkan bahawa ujian itu boleh gagal. Jika ujian lulus tanpa sebarang kod, ujian anda mungkin bermasalah!
  • Fokus: Ia memberikan matlamat yang jelas dan segera: menjadikan satu ujian ini lulus.

Ujian sebagai Spesifikasi

Anggap ujian anda yang gagal sebagai spesifikasi yang tepat atau keperluan kecil. Ujian itu menerangkan tingkah laku khusus yang mesti ditunjukkan oleh kod anda kelak.

  • Ujian mentakrifkan masukan.
  • Ujian mentakrifkan keluaran atau hasil yang dijangka.
  • Ujian itu konkrit dan boleh dilaksanakan.

Hal ini membantu mengelakkan salah faham dan memastikan kod anda memberikan perkara yang tepat untuk senario khusus tersebut.

Senario: Kalkulator Ringkas

Mari berlatih dengan membina kelas Calculator yang ringkas. Untuk kefungsian pertama, kita mahu kelas itu boleh menambah dua nombor.

Matlamat kita ialah menulis ujian untuk kaedah add yang akan gagal sebelum kita menulis pelaksanaan add yang betul.

Mereka Bentuk Ujian yang Gagal

Sebelum menulis kod, mari kita fikirkan:

  • Apakah masukannya? Kita akan menambah 2 dan 3.
  • Apakah keluarannya? Kita menjangkakan hasilnya ialah 5.
  • Apakah kaedahnya? Kaedah bernama add pada objek Calculator.

Kita akan menulis ujian yang memanggil calculator.add(2, 3) dan menegaskan bahawa hasilnya ialah 5.

Demonstrasi Kod: Ujian yang Gagal

Berikut ialah contoh simulasi penulisan ujian terlebih dahulu. Perhatikan bahawa kaedah add milik Calculator sengaja tidak betul (ia mengembalikan 0). Hal ini menyebabkan ‘ujian’ kita gagal dan menunjukkan fasa ‘Merah’.

Jalankan kod ini untuk melihat simulasi kegagalan!

public class Main {
    public static void main(String[] args) {
        System.out.println("Running a simulated test...");
        Calculator calculator = new Calculator();

        // Our test scenario: 2 + 3 should be 5
        int expected = 5;
        int actual = calculator.add(2, 3);

        if (expected == actual) {
            System.out.println("Test PASSED: 2 + 3 = " + actual);
        } else {
            System.out.println("Test FAILED: Expected " + expected + " but got " + actual);
            System.out.println("This is our 'Red' phase!");
        }
    }
}

// The production code (intentionally incorrect for 'Red' phase)
class Calculator {
    public int add(int a, int b) {
        return 0; // Wrong implementation to make the test fail
    }
}

Menganalisis ‘Merah’

Selepas menjalankan kod sebelumnya, anda melihat mesej ‘Ujian FAILED’. Inilah yang kita kehendaki!

  • Dijangka: 5
  • Sebenar: 0

Kegagalan ini mengesahkan dua perkara: ujian kita ditulis dengan betul dan kod pengeluaran (kaedah add) masih belum memenuhi tingkah laku yang ditetapkan.

Pemikiran ‘Kod Minimum’

Setelah anda mempunyai ujian yang gagal, langkah seterusnya dalam TDD (fasa ‘Hijau’) ialah menulis *kod paling ringkas yang mungkin* untuk menjadikan ujian itu lulus.

  • Jangan mereka bentuk secara berlebihan.
  • Jangan tambahkan ciri tambahan.
  • Fokus sahaja untuk memenuhi ujian yang sedang gagal.

Hal ini memastikan kod anda bersih dan berfokus sambil membina kefungsian secara berperingkat.

Kelebihan Menguji Dahulu

Mengamalkan fasa ‘Merah’ TDD membawa kepada:

  • Reka Bentuk yang Lebih Baik: Ujian membimbing anda ke arah kod yang lebih modular dan mudah diuji.
  • Keyakinan yang Lebih Tinggi: Setiap ujian yang lulus meningkatkan keyakinan anda terhadap ketepatan kod.
  • Lebih Sedikit Pepijat: Masalah dikesan lebih awal sebelum menjadi rumit.
  • Dokumentasi yang Sentiasa Dikemas Kini: Ujian anda berfungsi sebagai contoh terkini tentang cara kod patut digunakan.

Semakan Ringkas tentang Merah TDD

Mari uji pemahaman anda tentang fasa ‘Merah’ dalam Pembangunan Dipacu Ujian.

Imbas Kembali: Fasa ‘Merah’

Anda telah meneroka langkah pertama TDD yang penting: menulis ujian yang gagal.

  • Fasa ‘Merah’ bermaksud menulis ujian yang gagal.
  • Ujian ini bertindak sebagai spesifikasi yang jelas untuk kefungsian baharu.
  • Melihat ujian gagal mengesahkan kesahihannya dan menunjukkan bahawa kod masih belum betul.
  • Pendekatan sistematik ini menghasilkan keperluan yang lebih jelas dan kod yang lebih kukuh.

Seterusnya, kita akan belajar cara menjadikan ujian yang gagal itu lulus – fasa ‘Hijau’!

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 “Menulis Ujian Terlebih Dahulu” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi, termasuk “Menulis Ujian Terlebih Dahulu”, 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 “Menulis Ujian Terlebih Dahulu”?

Berlatih menulis ujian yang gagal untuk mentakrifkan tingkah laku yang dikehendaki sebelum melaksanakan sebarang kod pengeluaran. 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 2 daripada 4.

Berapa lamakah pelajaran “Menulis Ujian Terlebih Dahulu” 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. Pengenalan kepada Kitaran TDD
  2. Menulis Ujian Terlebih Dahulu
  3. Pemfaktoran Semula untuk Kebolehujian
  4. Tiga Hukum TDD
← Kembali ke Penguasaan Pengujian: JUnit, Mockito & Ujian Integrasi