2023/12/16

golang の test で before each は(たぶん)ない

golang でテストを書く場合、 TestMain(*testing.M) があるとそのファイルの中に *testing.T の関数は呼ばずに TestMain() だけ呼び出し、その中で Run() を呼び出すことで *testing.T の関数が呼ばれるらしい。
それを利用して、テスト全体の事前処理と事後処理を書くと良いそうだ。

ならば、各*testing.T の関数を呼び出す前後にも単独の事前処理と事後処理を呼び出すしくみがありそうなものだが、どうも無いようだ。

しくみを作っている人もいそうではあったが、標準にないならいいかな、と私は思った。テスト関数に直接埋め込むだけだ。
埋め込み忘れるという心配はあるのだが、だいたい TableDrivenTests とか言っているんだし、for文の中でテスト対象の関数を何度も呼び出すという書き方をすることが多いのだとすると、テスト関数単独の事前/事後処理を呼び出してもなぁ、という気がする。

 

 

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。