Du tror kontrollen virker fordi den lar seg dra

Handler om: Dashbord (valg som oppdaterer)

Du tror at siden glidebryteren flytter seg og tallet ved siden av teller oppover, er dashbordet i orden. Men en kontroll som ingen kode leser .value fra, er bare en bevegelig figur. Dette er en spesielt lumsk feil fordi den ikke gir noen feilmelding — det ser riktig ut, og både du og den som vurderer kan tro at det virker.

Eksempel

Eleven lager min_karakter = mo.ui.slider(1, 6), men filtrerer på et hardkodet tall i stedet for min_karakter.value. Bryteren flytter seg fint; diagrammet er det samme uansett hvor den står.

Slik tenker du riktig om det

Test alltid et dashbord ved å ENDRE valget og se om tallene endrer seg — ikke bare ved å se at kontrollen finnes. Følg hver kontroll med fingeren til den linja som leser .value-en. Finner du ikke linja, er kontrollen ikke koblet til noe.

Slik ser det ut i kode

Slik gikk det galt

min_karakter = mo.ui.slider(1, 6)
utvalg = [e for e in data if int(e["karakter"]) >= 4]   # 4, ikke .value

Slik fikser du det

min_karakter = mo.ui.slider(1, 6)
utvalg = [e for e in data
         if int(e["karakter"]) >= min_karakter.value]   # leser valget

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala