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