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.
Pahami mengapa test otomatis penting, test pyramid, pola arrange-act-assert, dan konvensi penamaan test.
Buka → # Menulis Test dengan pytestInstal pytest, tulis test pertama dengan assert polos, jalankan dari terminal, dan baca anatomi test yang gagal.
Buka → # unittestGunakan module bawaan unittest: TestCase, keluarga assertEqual, setUp/tearDown, dan perbandingannya dengan pytest.
Buka → # AssertionsKuasai assert pada pytest: assert rewriting, pytest.approx untuk float, dan pytest.raises dengan match.
Buka → # FixturesSediakan data dan objek siap pakai untuk test dengan @pytest.fixture, conftest.py, scope, dan yield untuk teardown.
Buka → # Parametrized TestsUji banyak kombinasi masukan dalam satu fungsi test dengan @pytest.mark.parametrize, ids, dan parametrizing class.
Buka → # Mocking dan PatchingIsolasi test dari jaringan dan layanan eksternal dengan Mock, patch, return_value, side_effect, dan autospec.
Buka → # Testing ExceptionsVerifikasi penolakan masukan dengan pytest.raises dan match, exception kustom, serta anti-pola yang harus dihindari.
Buka → # Code CoverageUkur berapa persen kode yang dieksekusi test dengan pytest-cov dan coverage, lalu tafsirkan angkanya dengan sehat.
Buka → # Linting dan FormattingTemukan kesalahan sebelum runtime dengan ruff check dan rapikan gaya kode dengan ruff format di pyproject.toml.
Buka → # Pre-Commit HooksJalankan ruff dan pemeriksaan kecil otomatis setiap kali git commit lewat .pre-commit-config.yaml.
Buka → # Continuous IntegrationOtomatiskan test di GitHub Actions dengan workflow YAML, strategi matrix, badge status, dan disiplin test sebelum merge.
Buka →