Lua Academy · leksjon

Påstander

Uttrykk forventet atferd.

Leksjon 3 av 413 trinn

Påstander er en gratis leksjon i Lua Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lua Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lua Academy inneholder totalt 4 leksjoner.

Hva påstander gjør

En påstand er kjernen i en test. Den uttrykker et faktum som må være sant. Hvis det er sant, fortsetter testen. Hvis ikke, registrerer busted en feil med en nyttig melding.

busted bruker biblioteket luassert, som du får tilgang til gjennom den globale assert-tabellen.

assert.are.equal(4, 2 + 2)

are.equal

assert.are.equal kontrollerer likhet med operatoren ==. Det første argumentet er den forventede verdien, og det andre er den faktiske verdien.

Dette fungerer for tall, strenger og boolske verdier, men for tabeller sammenlignes identitet, ikke innhold.

assert.are.equal("hello", greet())
assert.are.equal(10, count)

are.same for tabeller

Bruk assert.are.same for å sammenligne tabellinnhold i dybden. Den kontrollerer rekursivt at to tabeller inneholder like verdier.

Bruk same for datastrukturer og equal for primitiver eller identitetssjekker.

assert.are.same({1, 2, 3}, split("1,2,3"))
assert.are.same({x = 1}, point)

Sannhetsverdi

assert.is_true og assert.is_false kontrollerer at verdien er nøyaktig den tilsvarende boolske verdien. assert.is_truthy godtar alt som ikke er nil eller false.

Velg den strenge varianten når du forventer et boolsk resultat.

assert.is_true(user.active)
assert.is_truthy(find("x"))
assert.is_false(list:isEmpty())

Nil-sjekker

assert.is_nil bekrefter at en verdi er nil, mens assert.is_not_nil bekrefter at den finnes. Disse brukes ofte når du kontrollerer oppslag.

De gjør hensikten tydeligere enn å sammenligne med nil ved hjelp av equal.

assert.is_nil(map["missing"])
assert.is_not_nil(map["found"])

Negering med is_not

De fleste påstander kan negeres ved å sette inn is_not eller bruke formen are_not. Dette uttrykker at noe må være forskjellig.

For eksempel består assert.are_not.equal når de to verdiene er forskjellige.

assert.are_not.equal(1, 2)
assert.is_not_nil(result)

Testing av feil

For å kontrollere at kode utløser en feil, pakker du den inn i en funksjon og sender den til assert.has_error. busted kaller funksjonen og bekrefter at den kastet en feil.

Du kan også kontrollere feilmeldingen ved å sende en forventet streng som det andre argumentet.

assert.has_error(function()
  withdraw(-5)
end, "amount must be positive")

has_no.errors

Den motsatte kontrollen er assert.has_no.errors. Den består når den innpakkede funksjonen kjører uten å utløse en feil.

Dette er nyttig for å bekrefte at et kall i normalforløpet ikke krasjer, selv når du ikke kontrollerer returverdien.

assert.has_no.errors(function()
  parse("valid input")
end)

Egendefinerte feilmeldinger

Du kan legge til en melding i de fleste påstander for å gjøre feil tydeligere. Send den som et ekstra argument, slik at rapporten forklarer forventningen.

Tydelige meldinger gjør en kryptisk feil om til en som kan løses.

assert.is_true(ok, "login should succeed")

Samsvar med modifikatorer

luassert tilbyr modifikatorer og matchere for mer omfattende kontroller. For eksempel tester assert.matches en streng mot et Lua-mønster.

Dette er nyttig når en nøyaktig likhetssjekk blir for streng for variabelt resultat.

assert.matches("%d%d%d%d", get_year())
assert.matches("error", log_line, 1, true)

Velg riktig påstand

Velg den mest spesifikke påstanden for å gjøre koden tydelig. Bruk same for tabeller, equal for primitiver, has_error for feil og sannhetsverdisjekker for boolske verdier.

Spesifikke påstander gir bedre feilmeldinger, noe som gjør feilsøkingen raskere.

describe("queue", function()
  it("dequeues in order", function()
    assert.are.same({"a", "b"}, q:drain())
  end)
end)

Hurtigsjekk

Test forståelsen din av påstander i busted.

Oppsummering

luassert gir kraften bak busteds assert-tabell. Bruk are.equal for primitiver, are.same for sammenligning av tabeller i dybden, og sannhetsverdi- eller nil-sjekker der det passer.

Test feil med has_error og vellykkede kjøringer med has_no.errors. Bruk is_not for å negere, og legg til meldinger for tydeligere rapporter.

Gratis å komme i gang

Lær deg Lua med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
40
Leksjoner
159

Ofte stilte spørsmål

Er leksjonen «Påstander» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lua Academy, inkludert «Påstander», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lua Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Påstander»?

Uttrykk forventet atferd. Du øver på Lua Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lua Academy?

Ingen tidligere erfaring er nødvendig. Lua Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Påstander»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lua Academy-leksjonen?

Ja. Alle Lua Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Hvorfor teste
  2. describe- og it-blokker
  3. Påstander
  4. Mocks og spies
← Tilbake til Lua Academy