私が歌川です

@utgwkk が書いている

Duolingo日記

Duolingoでポチポチやっているだけだと文法や単語の変化規則とかは分からなくて勘でやるしかない、という課題感から、東外大言語モジュールを読むようになった。

www.coelang.tufs.ac.jp

Duolingoだけでは分からないことも教えてくれる。なんで数詞が2種類あるのか、そういえば日本語もそんな雰囲気あるな、とかそういうことを思い出させてくれる。

あと発音の違いがぜんぜんわからん。

連日、激しく飲酒しているため、パフォーマンスに支障が出ていると言わざるを得ない。週半ばでこういう調子だとややきついので来週からはセーブしておきたいところ。

オイスターソースでチャーハンを作るのにハマっているけど、さすがに具がないと味気ないのでなんか探したい。味気ないというか味や食感に変化がない。日持ちしてだいたい美味しいと嬉しいけど、そんな具あるんですか。

パスポート取った

手続きが面倒そうとか、戸籍謄本を取り寄せるハードルが高いとか、いろいろあったけど徐々に解決されていった結果ついにパスポートが登場した。

モチベーション

韓国方面のブルーアーカイブの二次創作を摂取したい、というのが大きい。このためにDuolingoの韓国語コースもやってる。

ここで韓国語の単語を1つご紹介すると、「고양이」で「猫」という意味になります。コヤンニーって言ったらネコチャンです。これさえ知っていれば暮らしが豊かになる。わかりましたか?

Go Conference 2024でgomockの話をします #GoCon

Well done! Your session Dive into gomock has been accepted for Go Conference 2024!

ということなので、よろしくお願いします。「Dive into gomock」というタイトルで、gomockの内部実装に深入りする話をします。

gocon.jp

6/8に渋谷で会いましょう。今日の12時から参加登録が始まるので全員来てください。

トークの説明

みなさまは、interfaceに依存するコンポーネントのテストを書いていますか? また、テストで使うinterfaceの実装はどうやって用意していますか? interfaceにメソッドが追加されたらどうしますか? 意図したメソッドが呼び出されていなかったら? メソッドに渡される引数の比較方法を柔軟にしたくなったら?

interfaceのモックを用いたテストを簡単に記述するためのフレームワークの1つに、gomockがあります。
gomockを使ったモック実装を使ってテストすることで、interfaceのメソッド呼び出しが適切に行われていることを検査し、意図しないメソッド呼び出しがあればテストを失敗させることができます。
また、gomockを使ったモック実装を生成するためのツールとしてmockgenが用意されています。mockgenを使うことで、interfaceの定義が変わってもgo generateコマンドで簡単にモック実装を修正することができます。

本セッションでは、gomockがどのようにinterfaceのメソッド呼び出しを検査しているのか解説します。
主に以下のトピックについて取り上げる予定です。

  • mockgenが生成するコードの内容
  • 期待するメソッド呼び出しを記述し、記録する
  • 期待するメソッド呼び出しがなければテストを失敗させる
  • 引数の比較方法をカスタマイズする

このセッションが、Goのinterfaceモックを用いたテストの仕組みへの理解を深める一助となれば幸いです。