Sprint 1 ยท First Flight  ยท  US4: Sensordata & assert

Als piloot, wil ik dat mijn script de sensorwaarden van de drone uitleest, controleert en de verbinding daarna netjes sluit, zodat ik weet dat de waarden kloppen voordat ik erop vertrouw.

Taak 2: assert als bewijs

Je weet nu dat get_battery() een int geeft. Maar hoe bewijzen we dat onze logica daarmee klopt? Met assert schrijf je mini-tests die het script stoppen zodra iets fout gaat.

assert: True = niets ยท False = crash

assert controleert of iets klopt. Als het klopt, gaat het script verder. Als het niet klopt, stopt het script met een AssertionError.

battery = 87   # stel: dit komt van tello.get_battery()

assert battery > 20, "Batterij te laag om op te stijgen!"
assert isinstance(battery, int), "Batterij moet een int zijn!"

print("Checks geslaagd โ€” klaar om te vliegen.")
SituatieWat assert doet
battery = 87, check > 20Klopt โ†’ script loopt door
battery = 5, check > 20Klopt niet โ†’ AssertionError: Batterij te laag
assert vs if
Gebruik if voor logica die altijd uitgevoerd wordt. Gebruik assert om aannames te bewijzen tijdens het bouwen โ€” "dit moet hier kloppen, anders is er een bug."

Tello API โ€” get_battery()

Tello API Sprint 1 ยท US4
MethodeWat het doetGeeft terug
tello.get_battery() Leest het batterijpercentage. Gebruik in assert-tests om dronelogica te bewijzen. int (0โ€“100)
>_ Oefenomgeving: Assert Simulator
  1. Klik op โ–ถ Run en lees de output.
  2. Verander battery = 87 naar battery = 5. Wat crasht?
  3. Herstel de waarde en voeg een derde assert toe voor het grensgevalgeval 20.
Klik op Run om te starten...

Jouw opdracht: bewijzen met assert

Schrijf een script dat de batterijwaarde simuleert (geen echte drone nodig). Schrijf minimaal drie asserts: รฉรฉn voor de normale waarde, รฉรฉn voor de grens (20), en รฉรฉn voor een onmogelijke waarde. Trigger bewust een AssertionError om te bewijzen dat je assert werkt.

Acceptatiecriteria

  • Er zijn minimaal drie asserts met elk een eigen foutmelding.
  • Je hebt de grenswaarde 20 getest (precies op de rand).
  • Je hebt bewust een AssertionError laten zien aan je docent.
  • Als alle asserts slagen, print het script een bevestiging.