11 Testability
Bersepakat dengan developer soal ID yang stabil.
Konsep inti
- 11.1
Dipasang developer
Di Flutter lewat Semantics identifier.
Semantics( identifier: 'order_submit_button', child: …, ) - 11.2
Satu sumber ID
Semua ID di satu file, dilarang rename.
class TestIds { static const orderSubmitButton = 'order_submit_button'; } - 11.3
Platform lain
Konsepnya sama, namanya beda.
React Native → testID Android native → resource-id

order_form_screenPraktik di playground
- Buka form pesanan
- Cek id parfum_chip_lavender di Studio
- Tambah ID baru, pakai di flow
Misi
Tambah satu ID baru di app, daftarkan, pakai di flow.
Lihat kunci jawabankunci/m11_testability.mdContoh referensi
Misi: tambah ID untuk penghitung karakter catatan (0/100) di form pesanan, daftarkan, lalu pakai di flow.
1. Daftarkan di satu sumber ID (`lib/testing/test_ids.dart`)
static const noteCounterText = 'note_counter_text';2. Pasang lewat `TestId` (Semantics identifier), bukan `Key`
TestId(
TestIds.noteCounterText,
child: Text('${_noteCtrl.text.length}/100'),
)3. Pakai di flow
- tapOn:
id: note_input
- inputText: "pisahkan putih"
- assertVisible:
id: note_counter_text
text: "14/100"Aturan tim: ID yang sudah dipakai flow tidak boleh di-rename atau dihapus. ID baru juga dicatat di README.
Rename ID diam-diam → semua flow yang memakainya gagal.