2012-05-08 2 views
3

私はPOP3操作を含むいくつかの新しいコードを書いています。私はテストを書くことができるデザインを思いついているので、かなりデカップリングされていて、私が書いている新しいコードのほとんどを演習しています。Delphiでサードパーティの電子メールコンポーネントをテストする方法は?

私が直面している問題は、メール用のサードパーティコンポーネントを使用している方法が正しいかどうかを確認する必要があることです。これには、たとえば、障害のあるPOP3サーバーからの奇妙な応答をテストすることが含まれます。

現在、私は模擬POP3クライアントを使用していますので、クライアントがエラーまたは奇妙な応答を得る可能性のあるシナリオでロジックをテストできます。しかし、私は、これらの前提が真実であり、第三者のコンポーネントのアップグレードなどの後も真実であることを確認する必要があります。

また、SMTPもあります。私はあなたがDumbsterを持っているJavaの世界で知っています。

デルファイの代替手段は何ですか? usualsuspectsを使用して独自のカスタムミニサーバーを作成しますか?

+0

AHはい、重複ではありませんが、本質的に同じものです。SMTPまたはPOP3を取り出してHTTPを挿入してください:http://stackoverflow.com/questions/9463011/http-server-for-unit-tests-in-デルファイ –

+0

@WarrenP - 私は別々の実行可能ファイルを持つことは、ホーリー・ブック・オー・ユニット・テストや何かによる恐ろしい悲惨な何らかの形であると思います。そして、あなたが提供したリンクの回答は、「自分のサーバーをIndyを使って書く」というものです。私はすでに誰かがそれをやりたかったと思っていた。 –

+0

@WarrenP - はい、わかります。叫ぶ必要はありません。 –

答えて

2

まあ、私はあなたが疑うものを確認する人であることを嫌い、しかし:

(A)あなたは(みんなのニーズが異なっていない、そして少なくともDelphiで何があるあなた自身を構築する必要があるとしていますJava Dumpsterに相当するこの種の統合テスト用の標準的な備品)および

(b)ICSとSynapseは素晴らしいので、Indyを想定すべきではないと思います。あなたはもっと速くしたいです...私はICSに行くでしょう、選択を与えました。しかし、あなたがインディをもっとよく知っているなら、それにつきます。

(c)実際には私の周りのISPで実際に使用されているPOP3/SMTPサーバーの種類を使ってテストするのが簡単だから、Linuxを実行している仮想マシンを使い続ける傾向があります。それについては、MSDNライセンスを持っていれば、おそらくWindows + Exchangeサーバー用のVMを作成することができます。

これは単なる単体テストではありません。これは統合テストです。たとえプロセスの代わりにスレッドで詰め込んだとしても、そこには単体テストはありません。これは統合テストです。

すべての開発者がセットアップなしでテストできるようにするには、いつでも利用可能で、さまざまな標準ポートでさまざまな構成を持つQA-TEST-NETWORK BOXを作成します。あなたのLANの中にゼロ設定のPCワークステーション。あなたのLANの外では、WAN環境では、これはかなり毛深くなります。

+0

うん、これはあまり疑われていた。私はSynapseが大好きですが、POP3やSMTPサーバーのクラスはないと思います。決してICSを使用しないで、見てみましょう。また、私が別のコメントで説明したように、私は外部の依存関係を望んでいません - 私は可能な限り摩擦を避けたいです。 –

+1

更新:Indyを使用してPOP3モックサーバーを作成しました。私は初期化中にサーバを起動し、クライアントがlocalhostに接続するとそれがそれです。それは素晴らしい(私は私のプロバイダに報告された私のpop3ライブラリのバグのいくつかをキャッチすることもできた、彼らはすぐにそれらを修正!) –

関連する問題