0

特定の Web サービス (エンドポイント) の動作方法を拡張/変更する際に潜在的なエラーを検出するために、開発中にいくつかの単体テストを実行できるようにしたいと考えています。

私はEasyMockを見てきましたが、これは実行可能な方法のように思えます-しかし!...私はmaven (2.0.9)を使用しており、mvn testなどでテストしたいと考えていますが、これにはバックエンドが実行されている必要がありますまたは、EasyMock を使用すると、データベースに接続できる必要があります (したがって、これにはいくつかのモックも必要です)。私が現在持っている Web サービスはすべて、バックエンド ベースからデータを取得します...

組織のさまざまな部分でさまざまなバージョンで使用されている 15 ほどの Web サービスがあるため、変更によって古いバージョンが壊れないことをテストできるようにしたいと考えています。

私がこの問題を抱えた最初の人だとは信じられないので、ヒントやヒントなどをいただければ幸いです。

4

1 に答える 1

1

コメントベースの話:Pの後、実際には問題はないようです。重要なことは、一部のコンポーネントの依存関係 (データベースなど) は、実際の実装の依存関係にすぎず、そのインターフェイスの一部ではないことを理解することでした。また、モッキングとは、対話の必要性を満たすために、代替の実装を提供することです。

一般的に、あなたが言及したように、バックエンドで依存するすべてのものは、実際に何であれ、単体テスト時にモック (または一般的には 2 倍) する必要があります。外部エンドポイントに依存している場合は、それをモックする必要があります。RDBMS に依存している場合は、それをモックすることもできますが、ここでの二重テストはモックではなく偽物である可能性が高いため、ベンダー固有のものを使用していないと仮定して、メモリ内データベース (HSQL や H2 など) を使用できます。 、コード内のネイティブ SQL。実際、いくつかのインターフェースの通常は単純化された独自の実装をまだ提供していますが、最近ではこれにモック フレームワークを使用しています。少し前まで、開発者は独自の手作りのモック クラスを作成していました。今日でも、モックフレームワークの助けを借りずに独自のモックを作成することは、非常に良い考えです。

ところで、あと2つ。いくつかの統合テストも行うことを検討している場合、2.0 バージョン以降の Spring WS は、spring-ws-test非常に流暢な API を提供することで、これをかなりうまくサポートするモジュールを提供します。詳細については、Spring WS のドキュメントを参照してください。興味がある場合。次に、一般的なモックを始めたばかりの場合は、Mockito の使用も検討してください。私の意見では、それも本当に良いです。正直なところ、EasyMock は lib をモックするための個人的なデフォルトの選択ですが、Mockito も同様に簡単で強力であることがわかりました。私の知る限り、多くの開発者にも好まれており、最近ではおそらくよりセクシーです:P.

于 2012-04-17T09:37:24.337 に答える