ホームページ >バックエンド開発 >Golang >フォーム変数はテストでは使用できません

フォーム変数はテストでは使用できません

PHPz
PHPz転載
2024-02-06 08:09:07430ブラウズ

フォーム変数はテストでは使用できません

質問内容

Go初心者です。 DeepMap OpenAPI ジェネレーターを使用して Echo サーバー上に構築された API サーバーと、pgxpool を使用して Postgres を作成しました。問題なく動作し、1 年前のものですが、それが正しく書かれているという意味ではありません :)。

テスト サーバーはシェル スクリプトと一連の Curl 呼び出しを使用しており、うまく機能していますが、Go のテスト フレームワークを使用するようにテストを更新しようとしています。いくつかの基本的なテストを行いましたが、フォーム値を必要とするものはすべて機能しません。ハンドラー関数はフォーム値を認識しないため、リクエストがフォーム値をカプセル化していないと思いますが、そうではありませんその理由がわかります。

以下は、生成された API インターフェイスの一部を実装する CreateNode() メソッドの最初の部分です。本文は省略しました。失敗している部分はコンテキスト内に表示される部分です。

リーリー

これはテスト関数です:

リーリー

完全なテスト出力については気にしません。CreateNode() が値を受け取らない場合、すべてが失敗するためです。 リーリー

私の知る限り、私は同様の例を注意深く観察しています。これで十分な詳細であることを願っていますが、不必要なサポート コードで問題を過負荷にしたくありません。

ノードのエンドポイントは

/nodes で、API のベース URL は /api ですが、私が見た例では、どちらもここには反映されていません。は不要です。 Echo の例では、常に / をエンドポイントとして使用します。


正解


わかりました、私はディンドンです。

私は何かを動作させるために多くの例をまとめましたが、テスト関数で次のことを試したのは一度だけです:

リーリー

そしてそれを

CreateNode にポップします: リーリー

これにより、次のようになります:

リーリー

リクエストが順調に進んでいることがわかりました。これはリクエストの作成方法に関係しています。

サンプルを再度確認したところ、フォームの値はあるサンプルに基づいて設定していましたが、コンテンツ タイプは別のサンプルから設定していることに気付きました。作品は以下の通りです:

リーリー

もちろん、これを JSON 経由で実行しても機能しません。CreateNode() が受信した情報を解析する方法ではないからです。

これは単なる私の不注意です!

以上がフォーム変数はテストでは使用できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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