Parameterisiertes Testen in Sw... Notiz

Parameterisiertes Testen in Swift

Apple stellte Swift-Testing auf der WWDC24 vor, das es ermöglicht, Argumente an eine Testfunktion mittels des @Test-Makros mit dem arguments-Parameter zu übergeben. Diese Funktion ermöglicht parametrisiertes Testen, bei dem die Testfunktion einmal für jeden Wert in der arguments-Sammlung aufgerufen wird. Der Test-Navigator zeigt die Ergebnisse jeder Testausführung an. Wenn zwei Argumente übergeben werden, generiert Swift-Testing Testfälle für alle Kombinationen der beiden Argumente. Es gibt jedoch eine Begrenzung auf maximal zwei Argumente, und wenn nicht alle Kombinationen benötigt werden, können die Argumente gepaart werden, indem sie zusammengezogen werden. Diese Funktion ist nützlich, wenn eine Sammlung von Eingabe-Argumenten getestet werden soll, die dasselbe Ergebnis erwarten. Sie kann besonders praktisch sein, wenn ein CaseIterable-Enum verwendet wird, um die Tests anzutreiben. Der Autor fand diese Funktion nützlich, als er XCTest-basierte Einheitstests auf Swift-Testing migrierte, insbesondere wenn Attribute von Core-Data-Managed-Object-Klassen überprüft werden sollten. Der Swift-Testing-Ansatz hat Vorteile gegenüber der Verwendung einer for-Schleife, einschließlich unabhängiger Testfälle, die parallel laufen können, und klarerer Fehlerberichterstattung. Insgesamt kann parametrisiertes Testen in Swift-Testing Tests vereinfachen und kombinieren, was es zu einer nützlichen Funktion in der Praxis macht.