我想知道在以下情况下对项目/模块组织有什么建议:
- 我有一个项目
DomainObjects
,我有一个课程MyObject
- 在我
/src/test/java
有DomainObjects
测试MyObject
- 在我
- 我有一个项目
Client
依赖于DomainObjects
我想添加一个ParameterSupplier
被调用的MyObjectTestSupplier
类来提供测试实例MyObject
供Client
.
MyObjectTestSupplier
在DomainObjects
项目中提供似乎是最有意义的。这是我的困境...
- 如果我将供应商放入其中
src/test/java
,DomainObjects
它将无法提供给Client
. - 我不想把它放进去
src/main/java
,DomainObjects
因为这意味着 JUnit 必须作为编译依赖DomainObjects
包含在我的生产代码中。 - 如果我把供应商放在某个项目中,
DomainObjectsTest
我有三个选择- 只放供应商是测试项目,但这意味着测试
DomainObjects
不能使用这个供应商。 - 将所有测试和供应商放入其中
DomainObjects
,DomainObjectsTest
但这意味着DomainObjects
即使测试失败,maven 也会成功编译 src/test/java
在ofDomainObjects
和src/main/java
of中复制供应商DomainObjectsTest
。
- 只放供应商是测试项目,但这意味着测试
我想过尝试制作DomainObjectsTest
一个模块,DomainObjects
但只有在包装在DomainObjects
这里pom
不起作用的情况下才有效。
想法?建议?
编辑:作为解释,MyObject
是一个简单的 bean(只是 getter 和 setter),我使用该ParameterSuppier
模式来提供填充的 bean 实例。供应商提供实用方法来轻松创建 bean 的填充实例以用于测试。我这样做是为了在我的项目中不重复这个人口代码(或模拟等价物)。