我想知道在以下情况下对项目/模块组织有什么建议:
- 我有一个项目
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/javaof中复制供应商DomainObjectsTest。
- 只放供应商是测试项目,但这意味着测试
我想过尝试制作DomainObjectsTest一个模块,DomainObjects但只有在包装在DomainObjects这里pom不起作用的情况下才有效。
想法?建议?
编辑:作为解释,MyObject是一个简单的 bean(只是 getter 和 setter),我使用该ParameterSuppier模式来提供填充的 bean 实例。供应商提供实用方法来轻松创建 bean 的填充实例以用于测试。我这样做是为了在我的项目中不重复这个人口代码(或模拟等价物)。