Menu
Blog (artikel)

Kontrak Uji Email untuk Pekerjaan CI/CD

Uji email otomatis membutuhkan lebih dari sekadar alamat kotak masuk. Ia memerlukan kontrak yang menjelaskan pesan mana yang termasuk dalam run, berapa lama harus menunggu, dan bukti apa yang harus disimpan ketika uji gagal.

Berikan setiap run catatan korelasi

Simpan pengidentifikasi run uji, penerima sintetis, waktu pemicu, dan tujuan pesan yang diharapkan. Jika aplikasi Anda mendukungnya, sertakan penanda korelasi non-sensitif dalam pesan uji. Cocokkan menggunakan lebih dari sekadar subjek: pesan lama dengan subjek yang sama dapat membuat run yang rusak tampak berhasil.

Tunggu dalam batas anggaran yang eksplisit

create test context
trigger the application action
until the test deadline:
    read messages using the provider's documented API
    accept only a message matching this run
    wait using bounded backoff if no match exists
report matched, timed out, or provider error

Ini adalah pseudocode, bukan contoh API CleanTempMail. Gunakan dokumentasi API yang terbaru untuk otentikasi, endpoint, dan batas permintaan. Ikuti instruksi retry dan batalkan pekerjaan yang tersisa ketika pekerjaan selesai.

Pastikan perilaku setelah penerimaan

Di lingkungan uji yang Anda kendalikan, pastikan bahwa tindakan verifikasi menghasilkan status akun yang diinginkan. Menerima pesan saja bukan bukti bahwa tautannya berfungsi. Simpan token otentikasi dan isi pesan di luar output CI biasa.

Buat kegagalan dapat didiagnosa

Bedakan kegagalan pengiriman aplikasi, tidak ada pesan yang cocok sebelum batas waktu, ketidaktersediaan penyedia, dan kegagalan asersi. Simpan timestamp dan pengidentifikasi yang disanitasi, lalu hapus akun sintetis serta artefak email sesuai kebijakan retensi uji tim.