BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース モックの代替としてのサービスの仮想化

モックの代替としてのサービスの仮想化

ブックマーク

原文(投稿日:2013/04/22)へのリンク

 

依存関係の注入を介したモックは、しばしば厄介な仕事だ。最も単純なアプリケーションでさえ、しばしば新しいインターフェイスの作成し、IoC Containerに依存することになる。そして一般的に多くの不必要な複雑さを追加する。その後に、まだモック自体を記述しなければならない。その多くは、単純な単体テスト以外には役に立たない。

Products such as CA Lisa Service Virtualization のような製品は、別のアプローチを提供する。個々のクラスをモックするのではなく、これらのテストツールを使用すると、ネットワークレベルでサービス全体のモックを作成することができる。アプリケーションの観点から、それは実際のサービスのバックエンドとやり取りする。現実には、そのバックエンドは例えまだ存在していなくてもである。

仮想化されたサービスを設定するのに2つの一般的な方法がある。最初のは契約で始まり(例えば、WSDLまたは他のプロトコル固有の記述子)、そしてあらかじめ決めた応答を作成する。これは、通常のJavaまたは.NETのコードを使用して手動で行うことができ、または、市販の製品を使用することができる。この方法の利点は、コンポーネントを書いているチームは、サービスの本物のバージョンが完成するのを待つ必要がないことである。欠点は、本物のバージョンは、偽物に実際に一致する必要があることだ。タイムラインが長くなるにつれ、この偽物は疑わしいものになる。

他のやり方は、トラフィックの記録を使用することである。ツールを、テスト対象のコンポーネントとそのダウンストリームで依存するものの間に置く。このツールは、基本的に、プロキシとして機能し、コンポーネントがどのようにやり取りするかについての情報を収集する。後でこれらの記録は、コンポーネントとそれが依存するサーバ間のやり取りをシミュレートするのに使用することができる。

両方のやり方は、ほとんどの通信プロトコルで実行可能である。正しいプラグインやフィルタを使用すれば、テスト・ツールは、メッセージキュー、REST、SOAP、生のTCP、またはあらゆる他のやり取り手段を理解することができるはずだ。

 

この記事に星をつける

おすすめ度
スタイル

BT