Enhetsteste ViewModel-er
Test forretningslogikk isolert.
Enhetsteste ViewModel-er er en gratis leksjon i SwiftUI Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SwiftUI Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SwiftUI Academy inneholder totalt 4 leksjoner.
Hvorfor teste ViewModel?
ViewModel inneholder logikken, så den er det perfekte stedet å teste. De kan kontrollere oppførselen uten å starte hele brukergrensesnittet. 🧪
Logikken lever adskilt fra visningene
Siden en ViewModel er en vanlig klasse, kan De opprette en i en test og kalle metodene direkte. Dette holder testene raske og fokuserte.
Møt XCTest
Apples testrammeverk heter XCTest. De importerer det og skriver testklasser som Xcode kjører for Dem med ett enkelt tastetrykk.
import XCTest
@testable import MyAppEn testklasse
En underklasse av XCTestCase grupperer relaterte tester. Navnet på hver testmetode må begynne med ordet test, slik at Xcode oppdager den automatisk.
final class CounterVMTests: XCTestCase {
}Arranger, utfør, kontroller
En ryddig test følger tre trinn: arranger objektene, utfør ved å kalle en metode, og kontroller deretter at resultatet er som forventet.
Opprett ViewModel
Start med å opprette en ny instans av ViewModel i testen. Et nytt objekt for hver test sørger for at testene er uavhengige og pålitelige.
let vm = CounterViewModel()Kall en metode
Utfør handlingen på den nå. Kall metoden du vil kontrollere, akkurat slik visningen ville gjort når en knapp trykkes. ➡️
vm.increment()Kontroller med XCTAssertEqual
Bruk XCTAssertEqual for å bekrefte at en verdi samsvarer med forventningen. Hvis den avviker, mislykkes testen med en tydelig melding.
XCTAssertEqual(vm.count, 1)Teste boolske verdier
For resultater som er sanne eller usanne kan du bruke XCTAssertTrue og XCTAssertFalse. De er tydelige å lese og dokumenterer hensikten din.
XCTAssertTrue(vm.isEmpty)Test grenseverdier
Gode tester dekker mer enn standardtilfellet. Kontroller tom input, grenser og uventede verdier, slik at feil oppdages før brukerne dine gjør det.
Kjør med én hurtigtast
Trykk Command-U i Xcode for å kjøre alle tester. Grønne hakemerker betyr at logikken fortsatt fungerer etter hver endring du gjør.
Hurtigsjekk
Hvilken assertion bekrefter at to verdier er like?
Oppsummering
Du har lært å teste en ViewModel isolert: opprett den, kall en metode, og kontroller deretter resultatet med XCTest. Raskt, målrettet og pålitelig. 🎉
Lær deg Swift 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
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Enhetsteste ViewModel-er» gratis?
Ja – hele teksten i «Enhetsteste ViewModel-er» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SwiftUI Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SwiftUI Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Enhetsteste ViewModel-er»?
Test forretningslogikk isolert. Du øver på SwiftUI 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 SwiftUI Academy?
Ingen tidligere erfaring er nødvendig. SwiftUI 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 1 av 4.
Hvor lang tid tar leksjonen «Enhetsteste ViewModel-er»?
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 SwiftUI Academy-leksjonen?
Ja. Alle SwiftUI 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
- Enhetsteste ViewModel-er
- Teste asynkron kode
- UI-tester med XCUITest
- Snapshot- og forhåndsvisningsdrevet testing