0

依存性注入の使用に興味がありますが、DIを念頭に置いて設計されていない外部ライブラリをどのように処理するかについて混乱しています。

たとえば、プロジェクトのスコープ内にあるオブジェクトを構築するコードがある場合は、インターフェイスを使用して、モックバージョンとこれらの具体的なバージョンを作成できます。

ただし、同じコードで外部ライブラリを使用してデータベースに書き込んだり、APIを呼び出したりすることもできます。外部ライブラリは、これの具体的な実装のみを提供する場合があります。

つまり、私のコードには具体的なものと抽象的なものが混在しており、残りのコードと同時に外部ライブラリをテストする必要があります。

モックバージョンを挿入できるように、すべての外部クラスのラッパーを作成する必要がありますか?これは大変な作業のようです。

4

2 に答える 2

1

独自のユニットを分離するために具体的なサードパーティの依存関係のモックを作成する必要がある場合は、インストルメンテーションを利用するMockitoなどのモックフレームワークを使用して非常に簡単に作成できます。

単体テストは、設計上の決定を推進するのではなく、情報を提供して強化する必要があります。また、実際のコードの設計と実装にほとんどの努力を集中できるように、それらをすばやく記述できる必要があります。Mockitoのような最新のフレームワークはこれを可能にします。

于 2012-10-28T13:22:38.910 に答える
1

Needle Framework( http://needle.spree.de/)を使用してコードを簡単にテストすることもできます。MockitoおよびEasyMockとうまく統合されています。Needleは、依存関係を分析し、モックオブジェクトを自動的に挿入することで、テストセットアップコードを削減します。

于 2012-10-28T20:16:09.233 に答える