Ivy:使用公共库进行单元测试同时避免循环依赖

Ivy: using a common library for unit tests while avoiding circular dependencies

我有几个 Ivy 项目 - 我们称它们为 ABCD,它们需要一个共同的单元测试基础。为了重用代码,我创建了一个单独的项目 Z 来保存这个单元测试的共同基础,并将其作为依赖项添加到各种 Ivy 项目(顺便说一句,我正在使用 JUnit)。

问题是:项目 Z 依赖于项目 AB 中的一些 类。结果:循环依赖。 Z 依赖于 AB 用于此 "unit test foundation",而 AB 依赖于 Z 用于单元测试。

我知道循环依赖是不可取的。每次编译代码时都会收到警告。

有什么建议吗?

答案很简单,但也很难。

将依赖于 A 或 B 的东西从 Z 移到 A 和 B 中。

当这不起作用时,将Z依赖的A和B中的东西移动到Z中。

重复。

您可能会发现您 类 的职责是混合的,需要将这些职责分开,以便将应该存在于 A/B/Z 中的关注点分开。

存在可以帮助您可视化依赖关系的工具,这可能会有所帮助。