Go 言語で基本的なユニットテストコードを書く

Go 言語で基本的なユニットテストコードを書く

Go言語はあらかじめ用意されている軽量なテストフレームワークtestinggo testコマンドを使ってユニットテストと性能テストを実現することができます。

testingを使うにあたっていくつか決まり事があります。

  • sample.goのテストコードはsample_test.goとなるように、*_test.goというファイル名になります。
  • testingをimportする必要があります。
  • テスト関数名は必ずTestから始まり、TestXxxのXxxの部分は任意の英数字の組み合わせです。
  • ただし頭文字は小文字[a-z]ではいけません、例えばTestintdivというのは間違った関数名です。
  • テスト関数TestXxx()のパラメータはtesting.Tです。
  • フォーマットは以下のとおりです。
func テストケース名 (t *testing.T) {
  // テストコード
}

testingには標準でアサーションがないので、便利なパッケージを使うほうが良いです。

テストツールライブラリ(goconvey)

goconveyにはアサーションがあります。

インストールは以下のとおりです。

go get github.com/smartystreets/goconvey
モンキーパッチライブラリ(monkey)

monkeyを使えば、ハックすることができます。jsでいうsinon.jsのような感じ?でしょうか。

インストール方法は以下のとおりです。

go get github.com/bouk/monkey
テスト実行方法

テスト実行方法はgo testコマンドを基本的には使用します。-runオプションを指定することにより、テストケース(テストケース関数)を実行することができます。

go test -run テスト関数名

また、テスト関数名については正規表現が使えます。

go test -run TestXxx* というように正規表現が使える
go test -run TestXxx_[0-9][0-9]$

Go 言語で基本的なユニットテストコードを書く

コメント

タイトルとURLをコピーしました