【Golang】測試

【Go语言】测试

我完成了学习Go语言的基础知识,包括从基础到创建Web应用程序的学习,现在进行复习整理。从基础知识到应用知识。

//main.go
package main
//testing
//テストを書く位置は、テストしたいファイルと同じ階層に書く.
//math.go = math_test.go という名前で作成。_test.goを探して実行される
//math_test.goに移動

//ターミナルで プロジェクトの中で、go test ./... で実行できる
//詳しいテスト内容を表示 go test -v ./...
/*
?       kiso_blog/go_test   [no test files]
ok      kiso_blog/go_test/alib  0.328s
*/

//相対パスでテストをやる場合、go test ./alib 
/*
aoyagimasanori@aoyagimasanorinoMacBook-Pro go_test % go test ./alib 
ok      kiso_blog/go_test/alib  0.302s
*/

//カバー率 go test -cover ./alib 
/*
ok      kiso_blog/go_test/alib  0.246s  coverage: 100.0% of statements
*/

//mainパッケージのテスト
//go test -v
/*
=== RUN   TestIsOne
    TestIsOne: main_test.go:15: 2 != 1
--- FAIL: TestIsOne (0.00s)
FAIL
exit status 1
FAIL    kiso_blog/go_test   0.226s
*/


//ユニットテストをやる場合は、Ginkgo(rubyっぽい),Gomega(jsっぽい)などを使ったりする
import (
    "fmt"
    //ここのエラーは相対パスだから
    //"./alib"
    "kiso_blog/go_test/alib"
)

func IsOne(i int) bool {
    if i == 1{
        return true
    }else{
        return false
    }
}

func main() {
    s := []int{1,2,3,4,5}
    fmt.Println(s)
    fmt.Println(alib.Average(s))
}
//main_test.go
package main
//mainパッケージのテスト

import "testing"

var Debug bool = false

func TestIsOne(t *testing.T) {
    i := 2
    if Debug{
        t.Skip("スキップする")
    }
    v := IsOne(i)

    if !v{
        t.Errorf("%d != %d",i, 1)
    }
}
//alib/alib.go
package alib


func Average(s []int) int {
    total := 0
    for _, i := range s {
        total += i
    }
    return int(total / len(s))
}
//alib/alib_test.go
package alib

//テスト用パッケージを読み込み
import "testing"

//このテストを飛ばしたい時はtrueにする
var Debug bool = false

//テスト
//Average関数のテスト例
//Test関数名にする
//引数はtにする。Errorなどの関数が使える。Skipなど
func TestAverage(t *testing.T) {
    if Debug {
        t.Skip("スキップします")
    }
    //ave3.5(1,2,3,4,5,6)は3になるらしい。
    //7までにすると、下記エラーが出る
    /*
            === RUN   TestAverage
            TestAverage: alib_test.go:22: 3じゃない 4
            TestAverage: alib_test.go:23: 4 != 3
            --- FAIL: TestAverage (0.00s)
            FAIL
            FAIL    kiso_blog/go_test/alib  0.308s
            FAIL
    */
    v := Average([]int{1, 2, 3, 4, 5}) //6,7 でエラー
    //もし、3でなければエラー
    if v != 3 {
        //エラー文字、値
        t.Error("3じゃない", v)
        t.Errorf("%d != %d", v, 3)
    }
}

广告
将在 10 秒后关闭
bannerAds