Lewati ke konten utama

F1 · Modul 14

Pengujian dengan pytest

51 langkah singkat, dari mudah sampai tantangan.

  1. Level 1

    Kenal

  2. Level 2

    Paham

  3. Level 3

    Terapkan

  4. Level 4

    Tantangan

  5. Level 5

    Pendalaman

Intinya

  • Tes adalah fungsi biasa berisi assert; pytest menemukan berkas test_*.py dan fungsi test_* lalu menjalankan semuanya.
  • pytest.raises menguji galat, parametrize menjalankan banyak kasus sekaligus, dan tmp_path memberi folder sementara untuk tes berkas.
  • Nilai harapan harus datang dari luar kode (kontrak, contoh, hitungan tangan), bukan dari rumus yang sama.
  • Uji tesmu dengan merusak kode dengan sengaja: tes yang tetap hijau tidak menjaga apa-apa.
  • Siklus kecil: tulis tes yang gagal, buat lulus, lalu rapikan.

Sebelum mulai

±5 jam (termasuk lab di komputermu).

Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.

Hasil belajar: menjelaskan kenapa tes otomatis dibutuhkan; memasang pytest di venv dan menjalankannya dari folder proyek; menulis tes dengan assert dan membaca laporan kegagalannya; menguji galat dengan pytest.raises; menulis banyak kasus sekaligus dengan parametrize; memakai fixture tmp_path, capsys, dan monkeypatch; memilih kasus uji yang benar-benar menangkap bug; serta menjalankan siklus kecil "tes dulu, baru kode".

Proyek: kasku langkah 14: paket tes pytest untuk kasku (tests/test_format.py, tests/test_data.py, tests/test_cli.py), plus latihan peramban "tulis tes yang menangkap bug".

Istilah di modul ini (48)

Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course

Bahan modul

Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.

  • 21 contoh kode
  • 8 berkas latihan + tes
Lihat isi zip
  • BACA-DULU.txt
  • contoh_f1_14_26.py
  • contoh_f1_14_64.py
  • contoh_f1_14_98.py
  • contoh_f1_14_129.py
  • contoh_f1_14_156.py
  • contoh_f1_14_490.py
  • contoh_f1_14_516.py
  • contoh_f1_14_556.py
  • contoh_f1_14_620.py
  • contoh_f1_14_1016.py
  • contoh_f1_14_1232.py
  • contoh_f1_14_1286.py
  • contoh_f1_14_1547.py
  • contoh_f1_14_1570.py
  • contoh_f1_14_1602.py
  • contoh_f1_14_1684.py
  • contoh_f1_14_2381.py
  • contoh_f1_14_2440.py
  • contoh_f1_14_2477.py
  • contoh_f1_14_2506.py
  • contoh_f1_14_2760.py
  • test_f1_14_1.py
  • test_f1_14_2.py
  • test_f1_14_3.py
  • test_f1_14_4.py
  • test_f1_14_7.py
  • test_f1_14_5.py
  • test_f1_14_6.py
  • test_f1_14_8.py