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の存在をラップ・隠蔽)
  • Cuckooの機能追加
  • Mockoloの発表とリリース
    • Uber製のモックジェネレーターで、コード生成が高速であるのが売り
    • 5月に開催されたUIKonf 2019での発表で公表され、OSSとしてリリース予定とされていた
    • 9月に1.0.0がリリースされた

Mockoloについては、UIKonfのセッション動画が公開されており、開発者自ら独自のジェネレーターを作るに至った背景や、高速化のためにやったことを丁寧に説明してくれています。こちらもぜひ見ましょう!

ということで、2019年末時点でのSwiftのモック事情をご紹介しました。どのツールを使うかは、

  • 機能
  • APIの好み
  • チームメンバーの規模や習熟度
  • プロジェクト(コードベース)の規模

など複数の要素に影響されると思います。ぜひ自分たちに適した選択肢を導入してみて、Swiftのテストライフを豊かなものにしていきましょう! 🤖


あわせて読みたい