Параметризованные тесты в Swift
Apple представила Swift Testing на WWDC24, которая позволяет передавать аргументы функции теста с помощью параметра arguments макроса @Test. Это функциональность позволяет проводить параметризованные тесты, где функция теста вызывается один раз для каждого значения в коллекции аргументов. Навигатор тестов отображает результаты каждого запуска теста. Если передаются два аргумента, Swift Testing генерирует тестовые случаи для всех комбинаций двух аргументов. Однако существует ограничение - не более двух аргументов, и если не все комбинации необходимы, аргументы могут быть сопряжены, чтобы их спарить. Это функциональность полезна при тестировании коллекции входных аргументов, которые ожидают одного и того же результата. Она может быть особенно удобной при использовании перечисления CaseIterable для управления тестами. Автор нашел эту функциональность полезной при миграции unit-тестов на основе XCTest в Swift Testing, особенно при проверке атрибутов классов управляемых объектов Core Data. Подход Swift Testing имеет преимущества перед использованием цикла for, включая независимые тестовые случаи, которые могут запускаться параллельно, и более четкое отчет о неудачах. В целом, параметризованное тестирование в Swift Testing может упрощать и объединять тесты, делая его полезной функциональностью на практике.