Kode yang tidak teruji adalah kode yang tidak dipercaya. Section ini membangun budaya kualitas: menulis test yang bermakna dengan pytest, mengukur coverage, menjaga gaya dengan linter, hingga mengotomatiskan semuanya lewat CI.

# Dasar-Dasar Software Testing

Pahami mengapa test otomatis penting, test pyramid, pola arrange-act-assert, dan konvensi penamaan test.

Buka →
# Menulis Test dengan pytest

Instal pytest, tulis test pertama dengan assert polos, jalankan dari terminal, dan baca anatomi test yang gagal.

Buka →
# unittest

Gunakan module bawaan unittest: TestCase, keluarga assertEqual, setUp/tearDown, dan perbandingannya dengan pytest.

Buka →
# Assertions

Kuasai assert pada pytest: assert rewriting, pytest.approx untuk float, dan pytest.raises dengan match.

Buka →
# Fixtures

Sediakan data dan objek siap pakai untuk test dengan @pytest.fixture, conftest.py, scope, dan yield untuk teardown.

Buka →
# Parametrized Tests

Uji banyak kombinasi masukan dalam satu fungsi test dengan @pytest.mark.parametrize, ids, dan parametrizing class.

Buka →
# Mocking dan Patching

Isolasi test dari jaringan dan layanan eksternal dengan Mock, patch, return_value, side_effect, dan autospec.

Buka →
# Testing Exceptions

Verifikasi penolakan masukan dengan pytest.raises dan match, exception kustom, serta anti-pola yang harus dihindari.

Buka →
# Code Coverage

Ukur berapa persen kode yang dieksekusi test dengan pytest-cov dan coverage, lalu tafsirkan angkanya dengan sehat.

Buka →
# Linting dan Formatting

Temukan kesalahan sebelum runtime dengan ruff check dan rapikan gaya kode dengan ruff format di pyproject.toml.

Buka →
# Pre-Commit Hooks

Jalankan ruff dan pemeriksaan kecil otomatis setiap kali git commit lewat .pre-commit-config.yaml.

Buka →
# Continuous Integration

Otomatiskan test di GitHub Actions dengan workflow YAML, strategi matrix, badge status, dan disiplin test sebelum merge.

Buka →