goユニットテスト

2842 ワード

goユニットテスト

  • goユニットテスト
  • 概要
  • 参考文献

  • 概要


    goは自動テストのパッケージtestingを提供し、
    ファイルyoufile.goがあると仮定すると、作成されたテストファイルの名前はyourfile_test.goで、このファイルにはテスト関数があり、形式は以下の通りです.
    func TestXxx(*testing.T)

    ここで、TestXxxのうちXxxの最初のアルファベットXは、大文字でなければならない.
    ソースファイルyourfile.goyourfile_test.goを同じディレクトリの下に配置します.go testコマンドで実行

    ≪インスタンス|Instance|emdw≫


    ここで使用https://github.com/golang/example/tree/master/stringutilのファイルテストstringutilディレクトリの下に2つのファイルがあります:reverse.goreverse_test.goreverse.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