0Pricing
Swift Academy · Урок

Семейство 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 — локальная установка не требуется.

Все уроки этого курса

  1. Настройка XCTestCase, очистка и методы тестирования
  2. Семейство XCTAssert и утверждения с выбрасыванием ошибок
  3. Имитация на основе протоколов и внедрение зависимостей
  4. Асинхронные тесты и измерение производительности
← Назад к Swift Academy