06 Assertion bermakna
Memastikan isi dan state benar, bukan sekadar ada.
Konsep inti
- 06.1
Teks & regex
Cocokkan pola kalau teks bervariasi.
- assertVisible: id: login_error_text text: "Akun diblokir.*" - 06.2
State tombol
Tombol bisa ada tapi nonaktif.
- assertVisible: id: weight_increment_button enabled: false - 06.3
Nilai batas
Uji tepat di batas aturan.
# 2 kg ✓ 1,5 kg ✗ # 50 kg ✓ 50,5 kg ✗

login_screenPraktik di playground
- Login akun diblokir 0899 9999 0000
- Pesan 1,5 kg → muncul error
- Subtotal ≥ Rp100.000 → ongkir gratis
Misi
Uji berat 2 & 50 kg, dan ongkir gratis mulai Rp100.000.
Lihat kunci jawabankunci/m06_assertion.yamlLulus di emulator
kunci/m06_assertion.yaml
# akun diblokir: cocokkan pola, bukan teks persis
- launchApp:
clearState: true
- tapOn:
id: login_phone_input
- inputText: "089999990000"
- tapOn:
id: login_password_input
- inputText: apa
- hideKeyboard
- tapOn:
id: login_submit_button
- assertVisible:
id: login_error_text
text: "Akun diblokir.*"
- runFlow:
file: subflows/login.yaml
env:
PHONE: "081211112222"
PASSWORD: laundry123
- tapOn:
id: service_card_cuci_kering
- tapOn:
id: weight_input
- eraseText: 6
- inputText: "1,5"
- hideKeyboard
- assertVisible:
id: weight_error_text
text: "Minimal 2 kg"
- tapOn:
id: weight_input
- eraseText: 6
- inputText: "2"
- hideKeyboard
- assertNotVisible:
id: weight_error_text
- tapOn:
id: weight_input
- eraseText: 6
- inputText: "50"
- hideKeyboard
- assertNotVisible:
id: weight_error_text
- assertVisible:
id: weight_increment_button
enabled: false
- tapOn:
id: weight_input
- eraseText: 6
- inputText: "50,5"
- hideKeyboard
- assertVisible:
id: weight_error_text
text: "Maksimal 50 kg"
# ongkir: Express 8 kg = Rp96.000 (+Rp10.000), 8,5 kg = Rp102.000 (gratis)
- tapOn:
id: order_form_back_button
- tapOn:
id: service_card_express
- tapOn:
id: weight_input
- eraseText: 6
- inputText: "8"
- hideKeyboard
- scrollUntilVisible:
element:
id: pickup_switch
direction: DOWN
- tapOn:
id: pickup_switch
- scrollUntilVisible:
element:
id: summary_delivery_fee
direction: DOWN
- assertVisible:
id: summary_delivery_fee
text: "Rp10.000"
- scrollUntilVisible:
element:
id: weight_input
direction: UP
- tapOn:
id: weight_input
- eraseText: 6
- inputText: "8,5"
- hideKeyboard
- scrollUntilVisible:
element:
id: summary_delivery_fee
direction: DOWN
- assertVisible:
id: summary_delivery_fee
text: "Gratis"assertVisible tanpa text tidak membuktikan isinya benar.