Rodzina XCTAssert i asercje zgłaszające błędy
Bezpieczne używanie XCTAssertEqual, XCTAssertThrowsError i XCTUnwrap.
Rodzina XCTAssert i asercje zgłaszające błędy to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.
XCTAssert i XCTAssertTrue
XCTAssert i XCTAssertTrue powodują niepowodzenie testu, jeśli warunek jest fałszywy.
XCTAssert(user.isLoggedIn)
XCTAssertTrue(cart.isEmpty, "Cart should be empty after clear()")XCTAssertFalse
XCTAssertFalse powoduje niepowodzenie testu, jeśli warunek jest prawdziwy.
XCTAssertFalse(session.isExpired, "Fresh session should not be expired")XCTAssertEqual
XCTAssertEqual powoduje niepowodzenie testu, jeśli dwie wartości nie są równe. Obie wartości muszą być zgodne z Equatable.
XCTAssertEqual(calculator.add(2, 3), 5)
XCTAssertEqual(user.name, "Alice", "Name should match the fixture")XCTAssertNotEqual
XCTAssertNotEqual powoduje niepowodzenie testu, jeśli dwie wartości są równe.
XCTAssertNotEqual(originalHash, updatedHash)XCTAssertNil i XCTAssertNotNil
Testuj wartości opcjonalne: pierwszy wariant powoduje niepowodzenie, jeśli wartość nie jest nil, a drugi — jeśli jest nil.
XCTAssertNil(service.error, "No error expected after successful fetch")
XCTAssertNotNil(result, "Result should be non-nil on success")XCTAssertThrowsError
Powoduje niepowodzenie testu, jeśli wyrażenie NIE zgłosi błędu. Opcjonalnie pozwala sprawdzić zgłoszony błąd.
XCTAssertThrowsError(try parser.parse("invalid json")) { error in
XCTAssertEqual(error as? ParseError, .invalidInput)
}XCTAssertNoThrow
Powoduje niepowodzenie testu, jeśli wyrażenie zgłosi błąd.
XCTAssertNoThrow(try parser.parse(validJSON))XCTUnwrap
XCTUnwrap rozpakowuje Optional i powoduje niepowodzenie testu, jeśli jego wartość to nil — jest to czytelniejsze niż połączenie guard let + XCTFail.
let user = try XCTUnwrap(service.currentUser)
XCTAssertEqual(user.name, "Bob")XCTAssertEqual z dokładnością
W przypadku porównań liczb zmiennoprzecinkowych określ wartość dokładności, aby uwzględnić ograniczenia precyzji.
XCTAssertEqual(result, 3.14159, accuracy: 0.0001)Własne komunikaty o niepowodzeniu
Wszystkie funkcje XCTAssert przyjmują opcjonalny parametr komunikatu, który zapewnia czytelniejsze informacje o niepowodzeniu.
XCTAssertEqual(items.count, 3, "Expected 3 items after insert, got \(items.count)")XCTExpectFailure
Oznacz oczekiwane niepowodzenia, aby w CI były zgłaszane jako powodzenia — przydaje się to w przypadku znanych, ale jeszcze nienaprawionych błędów.
XCTExpectFailure("Known issue: rdar://12345") {
XCTAssertEqual(brokenFunction(), expectedValue)
}Szybkie sprawdzenie
Która funkcja XCTest bezpiecznie rozpakowuje Optional i powoduje niepowodzenie testu, jeśli jego wartość to nil?
Podsumowanie lekcji
Rodzina asercji XCTest obejmuje: XCTAssert/True/False, XCTAssertEqual/NotEqual, XCTAssertNil/NotNil, XCTAssertThrowsError/NoThrow oraz XCTUnwrap. Zawsze dodawaj opisowe komunikaty. Używaj XCTExpectFailure do śledzenia znanych niepowodzeń.
Często zadawane pytania
Czy lekcja „Rodzina XCTAssert i asercje zgłaszające błędy” jest bezpłatna?
Tak — pełny tekst „Rodzina XCTAssert i asercje zgłaszające błędy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Rodzina XCTAssert i asercje zgłaszające błędy”?
Bezpieczne używanie XCTAssertEqual, XCTAssertThrowsError i XCTUnwrap. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Swift Academy?
Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Rodzina XCTAssert i asercje zgłaszające błędy”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?
Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Konfiguracja XCTestCase, sprzątanie i metody testowe
- Rodzina XCTAssert i asercje zgłaszające błędy
- Mockowanie oparte na protokołach i wstrzykiwanie zależności
- Testy asynchroniczne i pomiar wydajności