2019年のSwiftモック事情
こんにちは、id:ikesyoです。これは はてなエンジニア Advent Calendar 2019 17日目のエントリーです。
昨日12月16日(月)に行われた 年末だよ Android/iOS Test Night - 2019 にて、『2019年のSwiftモック事情』という発表をしました。
Swiftでテストのためのモックを用意するとなると、リフレクションでめちゃくちゃするということができないので、素朴に手で書くか、コード生成をすることになります。今回の発表ではコード生成に主眼を置き、以下の4つの選択肢を紹介しました。
それぞれの機能や違いなど詳しい内容は、ぜひ発表のスライドを見てみてください。
Swiftでのモック事情については、今年4月の Mobile Act KYOTO #1 でも発表をしていました。
しかしこの後の8ヶ月で意外と状況が変わっており、その差分を今回の発表に入れ込んでいます。
- SwiftyMockyの設定ファイルとコマンドが変わった
- Before: 設定ファイルは
mocky.yml
、コマンドはsourcery
を直接利用 - After: 設定ファイルは
Mockfile
、コマンドはswiftymocky
という専用のものが用意された(Sourceryの存在をラップ・隠蔽)
- Before: 設定ファイルは
- Cuckooの機能追加
- Mockoloの発表とリリース
- Uber製のモックジェネレーターで、コード生成が高速であるのが売り
- 5月に開催されたUIKonf 2019での発表で公表され、OSSとしてリリース予定とされていた
- 9月に1.0.0がリリースされた
Mockoloについては、UIKonfのセッション動画が公開されており、開発者自ら独自のジェネレーターを作るに至った背景や、高速化のためにやったことを丁寧に説明してくれています。こちらもぜひ見ましょう!
ということで、2019年末時点でのSwiftのモック事情をご紹介しました。どのツールを使うかは、
- 機能
- APIの好み
- チームメンバーの規模や習熟度
- プロジェクト(コードベース)の規模
など複数の要素に影響されると思います。ぜひ自分たちに適した選択肢を導入してみて、Swiftのテストライフを豊かなものにしていきましょう! 🤖