次の状況を考えると、プロジェクト/モジュールの編成に関するいくつかの提案は何であるか疑問に思っています:
DomainObjectsクラスがあるプロジェクトがありますMyObject/src/test/javaのテストDomainObjectsがありますMyObject
Clientに依存するプロジェクトがありますDomainObjects
のテストで使用する のテスト インスタンスを提供するために、ParameterSupplier呼び出されたクラスを追加したいと思います。MyObjectTestSupplierMyObjectClient
プロジェクトで提供MyObjectTestSupplierすることが最も理にかなっているようです。DomainObjectsこれが私のジレンマです...
- もし私がサプライヤーを入れたら
src/test/java、DomainObjectsそれは利用できなくなりますClient。 - これは、JUnit をコンパイルの依存関係として含める必要があり、それによって製品コードに含める必要が
src/main/javaあるためです。DomainObjectsDomainObjects - サプライヤをプロジェクト
DomainObjectsTestに参加させる場合、3 つの選択肢があります- サプライヤーだけがテストプロジェクトですが、これはテストで
DomainObjectsこのサプライヤーを使用できなかったことを意味します。 - すべてのテストとサプライヤーを入れますが
DomainObjects、それはテストが失敗した場合でもmavenによって正常にコンパイルされることDomainObjectsTestを意味しますDomainObjects - との両方
src/test/javaでサプライヤーをコピーします。DomainObjectssrc/main/javaDomainObjectsTest
- サプライヤーだけがテストプロジェクトですが、これはテストで
DomainObjectsTestのモジュールを作成しようと考えましたが、パッケージ化がここで機能しないDomainObjects場合にのみ機能します。DomainObjectspom
考え?提案?
編集: 説明として、MyObject単純な Bean (getter と setter のみ) でありParameterSuppier、Bean のインスタンスを作成するためにパターンを使用します。サプライヤーは、テストで使用する Bean の移入されたインスタンスを簡単に作成するためのユーティリティ メソッドを提供します。これは、プロジェクト全体でこの人口コード (または同等のモッキング) を繰り返さないようにするためです。