Ivy:使用公共库进行单元测试同时避免循环依赖
Ivy: using a common library for unit tests while avoiding circular dependencies
我有几个 Ivy 项目 - 我们称它们为 A
、B
、C
和 D
,它们需要一个共同的单元测试基础。为了重用代码,我创建了一个单独的项目 Z
来保存这个单元测试的共同基础,并将其作为依赖项添加到各种 Ivy 项目(顺便说一句,我正在使用 JUnit)。
问题是:项目 Z
依赖于项目 A
和 B
中的一些 类。结果:循环依赖。 Z
依赖于 A
和 B
用于此 "unit test foundation",而 A
和 B
依赖于 Z
用于单元测试。
我知道循环依赖是不可取的。每次编译代码时都会收到警告。
有什么建议吗?
答案很简单,但也很难。
将依赖于 A 或 B 的东西从 Z 移到 A 和 B 中。
当这不起作用时,将Z依赖的A和B中的东西移动到Z中。
重复。
您可能会发现您 类 的职责是混合的,需要将这些职责分开,以便将应该存在于 A/B/Z 中的关注点分开。
存在可以帮助您可视化依赖关系的工具,这可能会有所帮助。
我有几个 Ivy 项目 - 我们称它们为 A
、B
、C
和 D
,它们需要一个共同的单元测试基础。为了重用代码,我创建了一个单独的项目 Z
来保存这个单元测试的共同基础,并将其作为依赖项添加到各种 Ivy 项目(顺便说一句,我正在使用 JUnit)。
问题是:项目 Z
依赖于项目 A
和 B
中的一些 类。结果:循环依赖。 Z
依赖于 A
和 B
用于此 "unit test foundation",而 A
和 B
依赖于 Z
用于单元测试。
我知道循环依赖是不可取的。每次编译代码时都会收到警告。
有什么建议吗?
答案很简单,但也很难。
将依赖于 A 或 B 的东西从 Z 移到 A 和 B 中。
当这不起作用时,将Z依赖的A和B中的东西移动到Z中。
重复。
您可能会发现您 类 的职责是混合的,需要将这些职责分开,以便将应该存在于 A/B/Z 中的关注点分开。
存在可以帮助您可视化依赖关系的工具,这可能会有所帮助。