こんにちは。Mackerelでアプリケーションエンジニアをやっている id:lufiabb です。2024年6月8日(土)に渋谷のAbema Towersで開催されるGo Conference 2024に、はてなから1名登壇することが決まりました!
Go Conference本体としては数年ぶりのオフライン開催なので楽しみですね。また、はてなはブロンズスポンサーとして協賛しています。
当日のご紹介
当日は、はてなのエンジニアが登壇や運営スタッフとしても参加します。
id:utgwkk
11:50 - 12:30 にRoom 1で「Dive into gomock」というタイトルで登壇します。 gomockの深みについて、時間・空間の許す限りお話しする予定です。 当日はよろしくお願いします。
みなさまは、interfaceに依存するコンポーネントのテストを書いていますか? また、テストで使うinterfaceの実装はどうやって用意していますか? interfaceにメソッドが追加されたらどうしますか? 意図したメソッドが呼び出されていなかったら? メソッドに渡される引数の比較方法を柔軟にしたくなったら?
interfaceのモックを用いたテストを簡単に記述するためのフレームワークの1つに、gomockがあります。
gomockを使ったモック実装を使ってテストすることで、interfaceのメソッド呼び出しが適切に行われていることを検査し、意図しないメソッド呼び出しがあればテストを失敗させることができます。
また、gomockを使ったモック実装を生成するためのツールとしてmockgenが用意されています。mockgenを使うことで、interfaceの定義が変わってもgo generateコマンドで簡単にモック実装を修正することができます。本セッションでは、gomockがどのようにinterfaceのメソッド呼び出しを検査しているのか解説します。
主に以下のトピックについて取り上げる予定です。
- mockgenが生成するコードの内容
- 期待するメソッド呼び出しを記述し、記録する
- 期待するメソッド呼び出しがなければテストを失敗させる
- 引数の比較方法をカスタマイズする
このセッションが、Goのinterfaceモックを用いたテストの仕組みへの理解を深める一助となれば幸いです。
id:tomato3713
当日スタッフとして初参加します。 数年ぶりのオフライン開催となる Go Conference 2024 のメインテーマは「一期(Go)一会」です。 来ていただいた皆さんに楽しんでもらえるように頑張ります。 現地でお会いできるのを楽しみにしています!
当日お会いできることを楽しみにしています
この他にも、たくさんのはてなスタッフがGo Conference 2024に参加する予定です。当日みなさんとお会いできることを楽しみにしています!
また、現在はてなでは、サマーインターンシップ2024の募集を開始しています。エンジニアを目指す学生の皆さん、奮ってご応募ください。