2012-02-27 23 views
6

私のDelphiアプリケーションでいくつかのHTTPコンポーネントをテストする必要があります。私はDUnitを使用し、いくつかの自動化をテストに追加したいと思います。Delphiの単体テスト用HTTPサーバ

私のテストコードでは、ローカルHTTPサーバーを起動したり、設定したり(たとえば、3秒以内に接続を中断したり、低帯域幅をシミュレートしたり、ログイン/パスワードなどを尋ねるなど) HTTPサーバーをテストして閉じます。

Delphi/DUnitで使用できるHTTPサーバーがありますか?

私はMozillaチームがsuch serverを持っていることを知っていますが、それをDUnitに統合するのは容易ではありません。

答えて

9

私はIndyのTIdHttpServerを使用して、同じプロセスで作業を行います。

このアプローチでは、入ってくるリクエストが正しいことを確認したり、クライアント側からの動作をチェックしたりすることができます。

また、テストケースごとにサーバーを個別に設定することもできます。これにより、単体テストの理解が容易になります。つまり、「テスト」の部分が他の場所にないことを意味します。

0

ユニットテスト/ DUnitを使用して、自動統合テストを構築できます。 HTTPクライアントとしてのHTTPコンポーネントは、Webサービスを呼び出します。あなた自身のモックWebサービスを作ることも、GoogleやAmazonからのもののような公開Webサービスを使うこともできます。そのため、GoogleやAmazonの開発者アカウントを作成し、テストのための基本的なサービス機能をいくつか消費するだけです。

0

SOAPサービスをテストする場合は、SoapUIを使用して、WSDLに基づいて「モック」サービスを立ち上げてください。 これは、さまざまな応答を返すことができます(順番に行うか、単純なスクリプトを使用してリクエストの内容と一致させることができます)。これは、リクエストの「リクエストID」(単なるGUID) DUnitテストをSoapUIの応答に追加します。それらを照合する単純なxpathクエリです。

「缶詰の」エラー/例外を返すことができます。実行していないときは、「誰もいない」というテストケースがあります。