testing-テスト基本使用インタフェース
3188 ワード
testing-テスト基本使用インタフェース
関数、構造体、mainを書き終わったら、次のステップはテストです.testingパッケージは簡単で使いやすいテストパッケージを提供しています.
基本的なテスト例を書く
テストファイルのファイル名は_test.goを最後に、テスト例はTestXxxxのスタイルで存在する必要があります.
例えばutilsパッケージのsqlをテストします.goの関数:
func GetOne(db *sql.DB, query string, args ...interface{}) (map[string][]byte, error) {
sql_を作成する必要がありますtest.go
package utils
import (
"database/sql"
_ "fmt"
_ "github.com/go-sql-driver/mysql"
"strconv"
"testing"
)
func Test_GetOne(t *testing.T) {
db, err := sql.Open("mysql", "root:123.abc@tcp(192.168.33.10:3306)/test")
defer func() {
db.Close()
}()
if err != nil {
t.Fatal(err)
}
// empty
car_brand, err := GetOne(db, "select * from user where id = 999999")
if (car_brand != nil) || (err != nil) {
t.Fatal("emtpy ")
}
}
testingのテスト例形式
テストケースには、TestXxxx(t testing.T)//基本テストケースBenchmarkXxxx(b testing.B)//圧力テストケースExample_Xxx()/テストコンソール出力の例TestMain(m*testing.M)/テストMain関数
Exampleの例をあげます:(Exampleは最後にコンソール出力と予想が一致しているかどうかをコメントで確認する必要があります)
func Example_GetScore() {
score := getScore(100, 100, 100, 2.1)
fmt.Println(score)
// Output:
// 31.1
}
testingの変数
gotestの変数には次のものがあります.
testingパッケージ内の構造
testingの一般的な方法
T構造内部はcommon構造から継承され、common構造は集中的な方法を提供し、私たちがよく使うものです.
断言の誤りに遭遇すると、このテストの例が失敗したと判断し、次のように使用します.
Fail : case ,
FailedNow : case ,
断言エラーが発生した場合、このエラーをスキップしたいだけですが、テスト・インスタンスの失敗を表示したくない場合は、次のように使用します.
SkipNow : case ,
1つの場所で情報を印刷したい場合は、次のように使用します.
Log :
Logf : format
この例をスキップして、次の情報を印刷します.
Skip : Log + SkipNow
Skipf : Logf + SkipNow
失敗を断言したい場合は、テスト・インスタンスが失敗し、必要な情報が印刷されますが、テスト・インスタンスは続行します.
Error : Log + Fail
Errorf : Logf + Fail
失敗を断言したい場合、テスト・インスタンスが失敗し、必要な情報が印刷され、テスト・インスタンスが中断されます.
Fatal : Log + FailNow
Fatalf : Logf + FailNow