0/12 selesai APK

06 Assertion bermakna

Memastikan isi dan state benar, bukan sekadar ada.

40 menit · 3 konsep · 1 misi

Konsep inti

  1. 06.1

    Teks & regex

    Cocokkan pola kalau teks bervariasi.

    - assertVisible:
        id: login_error_text
        text: "Akun diblokir.*"
  2. 06.2

    State tombol

    Tombol bisa ada tapi nonaktif.

    - assertVisible:
        id: weight_increment_button
        enabled: false
  3. 06.3

    Nilai batas

    Uji tepat di batas aturan.

    # 2 kg ✓   1,5 kg ✗
    # 50 kg ✓  50,5 kg ✗
Layar login_screen di app Laundry Kiloan
login_screen

Praktik di playground

  1. Login akun diblokir 0899 9999 0000
  2. Pesan 1,5 kg → muncul error
  3. 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"
Unduh file

assertVisible tanpa text tidak membuktikan isinya benar.