7

Delphi アプリでいくつかの HTTP コンポーネントをテストする必要があります。私は DUnit を使用しており、テストに自動化を追加したいと考えています。

したがって、私のテスト コードでは、ローカル HTTP サーバーを起動して構成し (たとえば、3 秒で接続を切断する準備をする、低帯域幅をシミュレートする、ログイン/パスワードを要求するなど)、単体テストを実行して HTTP を閉じる必要があります。サーバ。

Delphi/DUnit に正確に使用できる HTTP サーバーはありますか?

Mozilla チームがそのようなサーバーを持っていることは知っていますが、それを DUnit に統合するのは簡単ではありません。

4

4 に答える 4

10

私はIndyを使用TIdHttpServerして、同じプロセスでサービスを提供しています。

このアプローチにより、着信する要求が正しいことを確認したり、クライアント側からの動作を確認したりできます。

また、テストケースごとにサーバーを個別にセットアップして、単体テストを理解しやすくすることもできます(つまり、他の場所に「テスト」の一部がないことを意味します)。

于 2012-02-27T10:11:09.393 に答える
0

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

「既定の」エラー/例外を返すようにすることができます。もちろん、実行されていないときは、「誰もいない」テストケースがあります。

于 2012-02-27T13:40:34.280 に答える
0

単体テスト / DUnit を使用して、自動統合テストを作成できます。たとえば、HTTP クライアントとしての HTTP コンポーネントが Web サービスを呼び出すとします。独自の模擬 Web サービスを作成することも、Google や Amazon のサービスなど、任意の公開 Web サービスを使用することもできます。したがって、Google または Amazon の開発者アカウントを作成し、テスト用にいくつかの基本的なサービス機能を使用するだけで済みます。

于 2012-02-27T10:39:19.850 に答える