#関モバ でSwift Testingの話をしました

Sansanさんで開催された関モバに参加してきました。

kanmoba.connpass.com

今回はSwiftの単体テストフレームワーク、Swift Testingについて話しました。

www.docswell.com

XCTestも悪いフレームワークではないのですが、より優れたものが出たということで、移行していきたいですね。修正は必要なものの基本的には移行しやすくて良い感じだと思います。

テストしたい値が複数あるときに、XCTestでは自前で for ループなどで各種パターンのテストを実行しなければならなかったのが、Swift Testingでは arguments 指定でテスト関数の外側から渡せるのは良いなと思います。なお、スライドでは書けませんでしたが、Xcode 16でUIも見やすくなっています。

ただ、非同期処理のテストは注意が必要かと思いました。XCTestの expectation とSwift Testingの confirmation はちょっと勝手が違います。一応 Task.megaYield という逃げ道はあるのですが、あんまり使いたくはないですね。おそらくは withCheckedContinuation を使うのが妥当そうです。テストコードが少しややこしくなるので、複雑な場合も本当に大丈夫かはまだ自信を持って言えませんが。

今回の発表に対して、いくつも質問をいただけて良かったです。こちらも勉強になるのでとても嬉しいです。また、Swift Testingや単体テストに興味を持っている人が多いことも改めて感じました。

関モバはあと1回くらい年内に開催されそうなので、次回も期待しています。