Семейство XCTAssert и утверждения с выбрасыванием ошибок
Безопасно используйте XCTAssertEqual, XCTAssertThrowsError и XCTUnwrap.
«Семейство XCTAssert и утверждения с выбрасыванием ошибок» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.
XCTAssert и XCTAssertTrue
XCTAssert и XCTAssertTrue завершаются ошибкой, если условие ложно.
XCTAssert(user.isLoggedIn)
XCTAssertTrue(cart.isEmpty, "Cart should be empty after clear()")XCTAssertFalse
XCTAssertFalse завершается ошибкой, если условие истинно.
XCTAssertFalse(session.isExpired, "Fresh session should not be expired")XCTAssertEqual
XCTAssertEqual завершается ошибкой, если два значения не равны. Оба значения должны соответствовать Equatable.
XCTAssertEqual(calculator.add(2, 3), 5)
XCTAssertEqual(user.name, "Alice", "Name should match the fixture")XCTAssertNotEqual
XCTAssertNotEqual завершается ошибкой, если два значения равны.
XCTAssertNotEqual(originalHash, updatedHash)XCTAssertNil и XCTAssertNotNil
Проверяйте необязательные значения: тест завершается ошибкой, если значение соответственно не равно nil или равно nil.
XCTAssertNil(service.error, "No error expected after successful fetch")
XCTAssertNotNil(result, "Result should be non-nil on success")XCTAssertThrowsError
Тест завершается ошибкой, если выражение НЕ выдаёт ошибку. При необходимости проверьте возникшую ошибку.
XCTAssertThrowsError(try parser.parse("invalid json")) { error in
XCTAssertEqual(error as? ParseError, .invalidInput)
}XCTAssertNoThrow
Тест завершается ошибкой, если выражение DOES выдаёт ошибку.
XCTAssertNoThrow(try parser.parse(validJSON))XCTUnwrap
XCTUnwrap извлекает значение из необязательного типа и завершает тест с ошибкой, если значение равно nil — это чище, чем сочетание guard let и XCTFail.
let user = try XCTUnwrap(service.currentUser)
XCTAssertEqual(user.name, "Bob")XCTAssertEqual с заданной точностью
При сравнении чисел с плавающей точкой указывайте значение точности, чтобы учесть погрешность представления.
XCTAssertEqual(result, 3.14159, accuracy: 0.0001)Пользовательские сообщения об ошибках
Все функции XCTAssert принимают необязательный параметр сообщения, чтобы сделать вывод об ошибке понятнее.
XCTAssertEqual(items.count, 3, "Expected 3 items after insert, got \(items.count)")XCTExpectFailure
Помечайте ожидаемые сбои, чтобы в CI они отображались как успешные результаты — это полезно для известных, но ещё не исправленных ошибок.
XCTExpectFailure("Known issue: rdar://12345") {
XCTAssertEqual(brokenFunction(), expectedValue)
}Быстрая проверка
Какая функция XCTest безопасно извлекает значение из необязательного типа и завершает тест с ошибкой, если оно равно nil?
Итоги урока
Семейство утверждений XCTest: XCTAssert/True/False, XCTAssertEqual/NotEqual, XCTAssertNil/NotNil, XCTAssertThrowsError/NoThrow, XCTUnwrap. Всегда добавляйте описательные сообщения. Используйте XCTExpectFailure для отслеживания известных сбоев.
Часто задаваемые вопросы
Урок «Семейство XCTAssert и утверждения с выбрасыванием ошибок» бесплатный?
Да — полный текст урока «Семейство XCTAssert и утверждения с выбрасыванием ошибок» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.
Чему я научусь в уроке «Семейство XCTAssert и утверждения с выбрасыванием ошибок»?
Безопасно используйте XCTAssertEqual, XCTAssertThrowsError и XCTUnwrap. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Семейство XCTAssert и утверждения с выбрасыванием ошибок»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Настройка XCTestCase, очистка и методы тестирования
- Семейство XCTAssert и утверждения с выбрасыванием ошибок
- Имитация на основе протоколов и внедрение зависимостей
- Асинхронные тесты и измерение производительности