- ビジネス コード
package main import "fmt" func sum(a int,b int) int { return a+b } func main() { fmt.Println("hello test") }
- テスト ケース
package main import ( "fmt" "testing" ) func TestSum(t *testing.T) { var a = 3 var b =4 res :=sum(a,b) fmt.Printf("%d 与%d之和:为%d",a,b,res) if res != 7{ t.Error("error") } }
各テスト ファイルはテストをインポートする必要があります。
テスト ファイル内の各テスト ケースは Test で始まり、TestXxx に準拠する必要があります。それ以外の場合、 go test はテストを直接選択し、実行しません。
-
go test はディレクトリ内でテスト ファイルを自動的に検索します。 go test -v は実行プロセスを表示します。詳細
テスト ケースの入力パラメーターは t testing.T または b testing.B
t.Error です。エラー情報を出力し、現在のテスト ケースはスキップされます
t.SkipNow() は、テストをスキップし、PASS を直接押して次のテストを処理することを意味し、次のテストに書き込む必要があります。テスト ケースの最初の行、それ以外の場合は無効です
go のテストでは、複数の TestXxx が順番に実行されることは保証されませんが、通常は順番に実行されます。 t.Run(name string, f func) を使用して順次実行を保証できます。
TestMain(m *testing.M) を初期化テストとして実行し、m.Run() を使用して呼び出します。データベース接続、ファイルを開く、REST サービスへのログインなど、初期化操作を必要とする一部のテストを完了するための他のテスト、testMain で m.Run() が呼び出されない場合、TestMain 以外の他のテスト ケースは実行されません。