Test adalah cara membuktikan kode bekerja — dan tetap bekerja setelah diubah. Section ini membahas pengujian PHP dari fondasi: mengapa menguji, menulis unit test dengan PHPUnit, assertion, dan data provider. Kita lanjut ke test doubles dan mocking untuk mengisolasi dependensi, integration dan database testing, HTTP testing, hingga end-to-end. Bagian akhir membahas coverage, mutation testing, static analysis, coding standards, dan continuous integration.
Pelajari cara berpikir seperti penguji: piramida pengujian, pola arrange-act-assert, dan ciri tes yang baik.
Buka → # Unit TestingPelajari cara menulis unit test pertama Anda dengan assertion polos dan PHPUnit untuk fungsi murni.
Buka → # Menginstal PHPUnitPelajari cara menginstal PHPUnit melalui berkas PHAR atau Composer untuk mulai menguji kode PHP secara otomatis.
Buka → # Menulis PHPUnit TestsPelajari cara menulis kelas test PHPUnit: konvensi penamaan, assertion dasar, siklus hidup setUp/tearDown, dan exit code.
Buka → # AssertionsPelajari cara memilih dan menulis assertion PHPUnit yang tepat, dari assertSame sampai expectException dan assertion komposit.
Buka → # Data ProvidersPelajari cara menguji banyak kasus sekaligus dengan data provider PHPUnit dan kasus bernama yang mudah didiagnosis.
Buka → # Test DoublesPelajari cara mengganti dependensi nyata dengan dummy, stub, spy, dan fake buatan tangan agar unit test berjalan cepat dan deterministik.
Buka → # MockingPelajari cara mengisolasi dependensi dengan mock bawaan PHPUnit, mulai dari createMock, expectation, constraint argumen, hingga mengenali kapan mocking justru merugikan.
Buka → # Integration TestingPelajari cara menguji beberapa komponen bekerja sama lewat integration test dengan seam yang disuntikkan, SQLite, test data builder, dan organisasi suite terpisah.
Buka → # Database TestingPelajari cara menguji repository dan query SQL dengan PHPUnit memakai SQLite :memory:, seeding fixture, assertion hasil query, dan pola transaction rollback.
Buka → # HTTP TestingPelajari cara menguji HTTP handler tanpa web server memakai objek Request dan Response murni, helper bergaya supertest, cookie tersuntik, hingga uji asap dengan php -S dan curl.
Buka → # End-to-End TestingPelajari cara menyusun pengujian end-to-end dengan server sungguhan untuk membuktikan seluruh tumpukan aplikasi bekerja sebagai satu kesatuan.
Buka → # Code CoveragePelajari cara membaca dan menafsirkan code coverage sebagai alarm asap kualitas, bukan angka yang dipuja.
Buka → # Mutation TestingPelajari cara mengukur kekuatan suite test dengan mutation testing: suntikkan bug kecil satu per satu dan pastikan setiap mutan mati.
Buka → # Static AnalysisPelajari cara memasang static analysis sebagai gerbang pertama pipeline QA untuk menangkap bug sebelum kode sempat dijalankan.
Buka → # Coding StandardsPelajari cara menegakkan coding standards secara otomatis dengan PHP-CS-Fixer dan PHP_CodeSniffer agar seluruh tim menulis kode bergaya sama.
Buka → # Continuous IntegrationPelajari cara merangkai lint, static analysis, dan test menjadi pipeline continuous integration otomatis dengan GitHub Actions.
Buka →