GoでUnitTestを作成する時は、ファイル名が_test.goで終わるファイルを作成します。適当なファイル名だとテストとして認識してくれないので、ファイル名が_test.goでちゃんと終わっているか何度か確認しましょう。
package moke
import (
"./"
"testing"
)
func Test_0000(t *testing.T) {
m := moke.NewMoke("Moke", 1)
if m.Dump() != "Name is Moke" {
t.Errorf("Not implemented " + m.Dump())
}
}
func Test_0001(t *testing.T) {
t.Errorf("Not implemented")
}
testingパッケージをimportし、*testing.Tを引数にとる公開関数(=先頭が大文字で始まる関数)を定義します。
Goのテストはassertion関数を呼ぶのではなく、自分で判定して、だめだったときはErrorf()やFail()を呼ぶ方式になっています。
今回はmokeパッケージ内にMoke_test.goを作り、テスト対象を同パッケージのMoke.goにしたので、importに"./"を追加しています。
テストが書けたら実行してみましょう。今回の例だと1件は失敗するはずです。
go test Moke_test.go
--- FAIL: Test_0001 (0.00 seconds)
Moke_test.go:16: Not implemented
FAIL
FAIL command-line-arguments 0.006s
コードを直して成功した場合はこんな感じになります。
go test Moke_test.go
ok command-line-arguments 0.006s