gpt4 book ai didi

java - 我应该将共享测试实用程序放在多模块 Maven 项目中的什么位置?

转载 作者:搜寻专家 更新时间:2023-11-01 03:30:26 24 4
gpt4 key购买 nike

我可能不会太在意这个,但我的项目有一个非常结构化的布局,我已经非常喜欢了。这一次,拥有这么多的结构实际上被证明是有用的,所以我真的不希望它再次变得凌乱。

首先,每个模块由几个 Java 包组成:

com.mycompany.mysoftware.modulename
com.mycompany.mysoftware.modulename.impl
com.mycompany.mysoftware.modulename.osgi
com.mycompany.mysoftware.modulename.test

主要代码位于 .impl 中。其他模块使用的接口(interface)、一些枚举和一些数据容器类存在于没有后缀的包中。 .osgi 包中有 OSGi 特定代码(BundleActivator 等),.test 包中有单元测试。

现在我有伪造模块的类,用于测试其他模块。我想知道我是否应该将它们放在已经包含主要代码共享库的 common 模块的 .test 包中,或者我是否应该有一个新模块测试 我可以在 Maven 中设置不同的依赖范围。

ETA:我遇到的一个问题是我得到了循环依赖:如果我有两个模块并且每个模块中的单元测试都需要另一个的伪造,则包含伪造的模块有一个依赖于包含接口(interface)的模块,该模块与包含单元测试的模块相同。所以,fake 应该和 test 放在一起,但这会导致大量的代码重复。或者,我为每个模块制作了一个假模块,但这让我觉得它失控了......

最佳答案

您不希望您的测试代码被打包到主代码使用的公共(public)模块中,是吗?

所以答案对我来说似乎很明显:创建一个测试模块并将其用作具有测试范围的依赖项。

(编辑:我正在回答下面问题更新中提到的问题)

关于循环依赖,将接口(interface)放在一个单独的模块中怎么样?

关于java - 我应该将共享测试实用程序放在多模块 Maven 项目中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1555197/

24 4 0