Room A
Intermediate
40 mins.
みなさまは、interfaceに依存するコンポーネントのテストを書いていますか? また、テストで使うinterfaceの実装はどうやって用意していますか? interfaceにメソッドが追加されたらどうしますか? 意図したメソッドが呼び出されていなかったら? メソッドに渡される引数の比較方法を柔軟にしたくなったら?
interfaceのモックを用いたテストを簡単に記述するためのフレームワークの1つに、gomock1があります。 gomockを使ったモック実装を使ってテストすることで、interfaceのメソッド呼び出しが適切に行われていることを検査し、意図しないメソッド呼び出しがあればテストを失敗させることができます。 また、gomockを使ったモック実装を生成するためのツールとしてmockgenが用意されています。mockgenを使うことで、interfaceの定義が変わってもgo generateコマンドで簡単にモック実装を修正することができます。
本セッションでは、gomockがどのようにinterfaceのメソッド呼び出しを検査しているのか解説します。 主に以下のトピックについて取り上げる予定です。
このセッションが、Goのinterfaceモックを用いたテストの仕組みへの理解を深める一助となれば幸いです。