goユニットテスト
2842 ワード
goユニットテスト
概要
goは自動テストのパッケージ
testing
を提供し、ファイル
youfile.go
があると仮定すると、作成されたテストファイルの名前はyourfile_test.go
で、このファイルにはテスト関数があり、形式は以下の通りです.func TestXxx(*testing.T)
ここで、
TestXxx
のうちXxx
の最初のアルファベットX
は、大文字でなければならない.ソースファイル
yourfile.go
とyourfile_test.go
を同じディレクトリの下に配置します.go test
コマンドで実行≪インスタンス|Instance|emdw≫
ここで使用https://github.com/golang/example/tree/master/stringutilのファイルテストstringutilディレクトリの下に2つのファイルがあります:
reverse.go
とreverse_test.go
reverse.go package stringutil
// Reverse returns its argument string reversed rune-wise left to right.
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
reverse_test.go
package stringutil
import "testing"
func TestReverse(t *testing.T) {
for _, c := range []struct {
in, want string
} {
{"Hello, world", "dlrow ,olleH"},
{"Hello, ", " ,olleH"},
{"", ""},
} {
got := Reverse(c.in)
if got != c.want {
t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
}
}
}
実行結果
[stringnutil]# go test
PASS
ok stringutil 0.002s
参考文献
pkg/testing