ホームページ  >  記事  >  バックエンド開発  >  Go でネストされた入力をテストする方法

Go でネストされた入力をテストする方法

王林
王林転載
2024-02-14 12:00:11951ブラウズ

如何在 Go 中测试嵌套输入

php エディター Youzi は、Go でネストされた入力をテストする方法を紹介します。 Go コードを作成するとき、ネストされた JSON データや多次元配列などのネストされた入力を処理する必要がある状況によく遭遇します。これらのネストされた入力を効果的にテストする方法が重要な問題です。この記事では、Go でネストされた入力を簡単にテストし、コードの正確さと安定性を確認するのに役立ついくつかの実用的な方法とテクニックを紹介します。初心者でも経験豊富な開発者でも、これらのヒントは Go コードを作成してテストするときに非常に役立ちます。一緒に調べてみましょう!

質問内容

os.stdinを使用してユーザー入力を取得する機能があります

リーリー

私のプログラムでは、2 つの入力が必要です:

  • 最初にユーザー名などの基本情報を取得するために使用されます
  • 2 番目の入力は、最初の入力に依存する追加情報を取得するために使用されます
リーリー

この状況に対して単体テストを書くことは可能でしょうか? ユーザー入力をテストするために、次のコード スニペットを使用したところ、うまくいきました。 リーリー

ただし、2 つのネストされた入力では機能しません

回避策

特定の種類の結果を返す関数を使用し、それを別のパッケージに入れることを検討してください。

name

age が言及されているので、person などの具体的なタイプを想定して説明できるかもしれません。

os.stdin

へのハードコードされた参照を持たせるのではなく、実際のリーダーをパラメーターとして含めたいことに注意してください。これにより、まずネストされた入力のシミュレーションが可能になります。 このように、メソッドのシグネチャは次のようになります:

リーリー

対応するタイプは次のとおりです:

リーリー

コード スニペットを

input.go

という名前の別のディレクトリにある完全な go ファイルにマージすると、次のようになります: リーリー

q

の入力は nil、nil を返し、クエリがループ内で行われた場合などに入力を終了するために使用できます。 ######単体テスト###### ###単体テスト### リーリー これで、

input_test.go

という名前のファイルが入力データを提供するはずです。

nestedinput

関数にはパラメーターとして

io.reader

が必要なので、必要な入力を生成するだけです (例: )。 リーリー したがって、テストは次のようになります:

リーリー

もちろん、テストをさらに詳細に拡張することもできます。ただし、ご覧のとおり、これはネストされた入力をシミュレートします。

以上がGo でネストされた入力をテストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。