Переход с XCTest на Swift Testing
Тестирование на Swift - это открытый фреймворк для тестирования, разработанный для Swift, представленный компанией Apple на WWDC24 и поставляемый с Xcode 16. Он использует современные функции, такие как параллельное выполнение и макросы, и поддерживает Windows и Linux, а также платформы Apple. Нет срочной причины для миграции с XCTest, но тестирование на Swift предлагает несколько преимуществ, включая возможность запуска тестов в процессе с помощью параллельного выполнения Swift, что позволяет выполнять параллельное тестирование на физических устройствах.Чтобы начать работать с тестированием на Swift, вы можете смешивать тесты XCTest и тестирования на Swift в тестовой цели, но не следует смешивать фреймворки тестирования внутри одного теста. Вы можете импортировать фреймворк тестирования на Swift, добавив "import Testing" в ваш файл теста. Apple рекомендует группировать тесты, добавляя их к типу, такому как структура или класс, и использовать метод init для настройки и завершения.Тесты тестирования на Swift - это обычные методы Swift, которые становятся тестами единиц, когда вы добавляете макрос @Test. Вы можете пометить методы тестирования как async или throws и изолировать их в акторе по мере необходимости. Атрибут @Test - это макрос, который можно расширить, чтобы увидеть реализацию.Тестирование на Swift использует макросы #expect и #require для утверждений, которые предлагают больше гибкости и информативных сообщений об ошибках, чем XCTAssert в XCTest. Макрос #expect регистрирует неудовлетворенные ожидания и продолжает тест, в то время как макрос #require - это версия, которая выбрасывает исключение и останавливает выполнение теста при ошибке.Вы также можете использовать Issue.record, чтобы вызвать сбой теста без оценки условия, аналогично XCTFail в XCTest. В целом, тестирование на Swift предлагает несколько преимуществ перед XCTest, включая улучшенную поддержку параллельного выполнения и более гибкие утверждения.