GoでUnitTest

ツイート このエントリーをはてなブックマークに追加
1つ上へ / ブログトップへ

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
1つ上へ / ブログトップへ