Delphiの単体テストのHTTPサーバー
-
13-11-2019 - |
質問
私は私のDelphiアプリでいくつかのHTTPコンポーネントをテストする必要があります。私はDUNITを使い、テストに自動化を追加したいです。
だから私のテストコードはローカルのHTTPサーバーを起動し、それを設定する必要があります(たとえば、3秒以内に接続ブレークの準備、またはログイン/パスワードなどを求めるために、またはログイン/パスワードなどを求める)、私の単位テストを実行します。そしてHTTPサーバーを閉じます。
Delphi / Dunitのために正確に利用可能なHTTPサーバーはいくつかありますか?
Mozillaチームがそのようなサーバを持っていることを知っていますが、それを統合するのは簡単ではありません。dunit。
解決
IndyのTIdHttpServer
を使用して同じプロセスのものを処理します。
このアプローチでは、要求が正しいこと、およびクライアントの終了からの動作をチェックすることを確認できます。
また、TestCaseベースでテストケースでサーバーを個別に設定することができ、単体テストを理解しやすくする(つまり、「テスト」を選択していないことを意味します)。
他のヒント
自動統合テストを構築するために単体テスト/ DUNITを使用することができます。httpクライアントとしてのHTTPコンポーネントはWebサービスを呼び出します。GoogleやAmazonからのもののいずれかのように、あなた自身のモックWebサービスを作成することも、公開Webサービスを使用することもできます。したがって、GoogleまたはAmazon Developerアカウントを作成し、テストの基本的なサービス機能を消費するだけです。
SOAPサービスをテストしている場合は、SOAPUIを使用してWSDLに基づいて「MOCK」サービスを立ち上げます。 あなたはそれがさまざまな応答を返すことができます(または要求内容に応答を一致させるためにいくつかの単純なスクリプティングを使用するか、またはいくつかの単純なスクリプティングを使用する)。DUnitテスト、SOAPUIの応答。これはそれらを合わせる単純なXPathクエリです。
「缶詰」エラー/例外を返すことができます。もちろん、実行されていない場合は、「誰のホーム」のテストケースがあります。