単体テスト Go 言語での関数エラー処理方法には次のものがあります。 シミュレートされた入力の作成: エラーが制御されたシミュレートされたオブジェクトを作成します。エラー メッセージをアサートする: 返されたエラー メッセージを予期されるメッセージと一致させます。エラー状態をカバーする: 考えられるすべてのエラー状態に対するテスト ケースを作成します。
Go 言語関数エラー処理での単体テスト
バックグラウンド
In In Go 言語では、関数内のエラーは error
型の値をチェックすることで処理されます。正しいエラー処理を保証するには、単体テストを実行することが重要です。
単体テスト戦略
次の戦略は、関数内のエラー処理を単体テストする場合に非常に効果的です。
assert.Equal()
などのアサーション ライブラリを使用して、返されたエラー メッセージが予想されるエラー メッセージと一致することを確認します。 実際的なケース
2 つの数値の合計を計算する次の関数を考えてみましょう:
func Sum(a, b int) (int, error) { if a < 0 || b < 0 { return 0, errors.New("non-negative integers only") } return a + b, nil }
単体テスト
import ( "errors" "testing" ) func TestSum(t *testing.T) { tests := []struct { a, b int expected int err error }{ {a: 1, b: 2, expected: 3, err: nil}, {a: -1, b: 2, expected: 0, err: errors.New("non-negative integers only")}, } for _, tt := range tests { t.Run("test", func(t *testing.T) { sum, err := Sum(tt.a, tt.b) if sum != tt.expected { t.Errorf("Expected %d, got %d", tt.expected, sum) } if !errors.Is(err, tt.err) { t.Errorf("Expected error %q, got %q", tt.err, err) } }) } }
結論
Go での関数エラー処理は、シミュレートされた入力、エラー メッセージ アサーション、および徹底的なテスト ケース カバレッジを使用して効果的にテストできます。これは、コードの堅牢性と信頼性を確保するのに役立ちます。
以上がgolang 関数のエラー処理での単体テストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。