XCTest auf Swift-Testing migri... Notiz

XCTest auf Swift-Testing migrieren

"Swift Testing ist ein quelloffenes Testframework, das speziell für Swift entwickelt wurde und von Apple auf der WWDC24 vorgestellt und mit Xcode 16 ausgeliefert wurde. Es nutzt moderne Funktionen wie Konkurrenz und Makros und unterstützt neben Apples Plattformen auch Windows und Linux. Es gibt keinen dringenden Grund, von XCTest auf Swift Testing umzustellen, aber Swift Testing bietet mehrere Vorteile, darunter die Möglichkeit, Tests mithilfe von Swift-Konkurrenz in einem Prozess auszuführen, was parallele Tests auf physischen Geräten ermöglicht.Um mit Swift Testing zu beginnen, können Sie XCTest- und Swift-Testing-Einheitstests in einem Testziel mischen, sollten jedoch nicht innerhalb eines Tests verschiedene Testframeworks mischen. Sie können das Swift-Testing-Framework importieren, indem Sie "import Testing" in Ihre Testdatei einfügen. Apple empfiehlt, Tests zu gruppieren, indem Sie sie einem Typ wie einer Struktur oder Klasse hinzufügen und die init-Methode für die Einrichtung und den Abbau verwenden.Swift-Testing-Tests sind normale Swift-Methoden, die zu Einheitstests werden, wenn Sie das @Test-Makro hinzufügen. Sie können Testmethoden mit async oder throws markieren und sie nach Bedarf auf einen Actor isolieren. Das @Test-Attribut ist ein Makro, das erweitert werden kann, um die Implementierung zu sehen.Swift Testing verwendet die #expect- und #require-Makros für Behauptungen, die mehr Flexibilität und informative Fehlermeldungen als XCTest's XCTAssert bieten. Das #expect-Makro protokolliert fehlgeschlagene Erwartungen und setzt den Test fort, während das #require-Makro eine Ausnahme auslöst, die die Testausführung bei einem Fehler stoppt.Sie können auch Issue.record verwenden, um einen Test ohne Auswertung einer Bedingung fehlschlagen zu lassen, ähnlich wie XCTFail in XCTest. Insgesamt bietet Swift Testing mehrere Vorteile gegenüber XCTest, darunter verbesserte Konkurrenzunterstützung und flexiblere Behauptungen."