Go 言語の単体テスト方法: テスト パッケージとテスト対象のパッケージをインポートします。 「Test」で始まるテスト関数を定義します。パラメータや期待される結果を含むテスト ケースを定義します。テスト ケースを繰り返し、関数を呼び出し、実際の結果と期待される結果を比較します。違いがある場合、トリガー テストは失敗します。
Go 関数の単体テストに関する実践的なチュートリアル
単体テストはソフトウェア開発に不可欠な部分であり、確実に実行するのに役立ちます。コードの正確性を高め、欠陥を減らします。 Go では、組み込みの testing
パッケージを使用して単体テストを作成できます。
コード例
名前パラメータを受け入れる Greet
という名前の関数を含む greetPackage
パッケージがあるとします。挨拶を返します。
package greetPackage import "fmt" func Greet(name string) string { return fmt.Sprintf("Hello, %s!", name) }
testing
パッケージを使用して単体テストを作成し、Greet
関数の機能をテストできます。
package greetPackage_test import ( "testing" "github.com/example/myproject/greetPackage" ) func TestGreet(t *testing.T) { tests := []struct { name string expected string }{ {"Alice", "Hello, Alice!"}, {"Bob", "Hello, Bob!"}, } for _, test := range tests { actual := greetPackage.Greet(test.name) if actual != test.expected { t.Errorf("Greet(%s) = %s; expected %s", test.name, actual, test.expected) } } }
仕組み
testing
パッケージとテスト対象のパッケージ (greetPackage
) をインポートする必要があります。 *testing.T
パラメーターを受け入れる必要があります。 tests
変数を使用してテスト ケース スライスを定義します。各ケースには、テスト対象のパラメーター (name
) と期待される結果 (expected##) が含まれています。 #) 。
ループを使用してテスト ケースを順番に調べ、
greetPackage.Greet 関数を呼び出します。
関数の実際の結果 (
actual) と期待される結果 (
expected) を比較し、一致する場合は ## を発生させます。 #t.エラー
が異なります。
ターミナルで次のコマンドを実行してテストを実行します:
go test -v github.com/example/myproject/greetPackage
テストが成功すると、次の情報が出力されます:
PASS ok github.com/example/myproject/greetPackage 0.004s
以上がgolang関数の単体テストに関する実践的なチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。