Go 関数の単体テストでは、エラー処理に 2 つの主な戦略があります。 1. エラーをエラー タイプの特定の値として表現し、期待値をアサートするために使用します。 2. チャネルを使用してテスト関数にエラーを渡します。 、同時実行コードのテストに適しています。実際のケースでは、エラー値戦略を使用して、関数が負の入力に対して 0 を返すようにします。
単体テストは、コードの堅牢性と信頼性を確保するための重要なステップです。 Go では、エラーを処理するためのいくつかの戦略が含まれている testing
パッケージを使用して単体テストを実行できます。
Go でのエラー処理には主に 2 つの戦略があります。
1 エラー値
は次のとおりです。 error
型の具体的な値として表されます。単体テストでこのメソッドを使用するには、エラーを期待値にアサートします:
func TestMyFunction(t *testing.T) { err := myFunction() if err != nil { t.Errorf("myFunction returned an unexpected error: %v", err) } }
2. エラー チャネル
チャネルを使用して、テスト関数にエラーを渡します。これは、複数のエラーが同時に観察される可能性があるため、同時実行コードをテストする場合に役立ちます。 #単体テストにエラー値戦略を使用して、関数が負の入力に対して 0 を返すようにします:
func TestMyConcurrentFunction(t *testing.T) { done := make(chan error) go func() { done <- myConcurrentFunction() }() select { case err := <-done: if err != nil { t.Errorf("myConcurrentFunction returned an unexpected error: %v", err) } case <-time.After(time.Second): t.Errorf("myConcurrentFunction did not complete within the timeout") } }
以上がGo 関数単体テストのエラー処理戦略の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。