我正在启动一个项目,其中“核心”模块将定义一组通用接口,其他模块在后端使用不同的库来实现这些接口。它与 SLF4J 非常相似,其中 API 模块描述了您可以使用的所有操作,并且绑定模块在各种日志框架(如 Log4j、java.util 日志记录和 Logback)中实现这些操作。要使用它,您依赖于 API 模块和绑定模块之一,并且您只与 API 交互。
我的问题在于测试。由于 API 表达了所有可能的操作并且每个绑定模块都应该以相同的方式运行,因此我想编写一组描述预期行为的测试并对每个绑定模块运行相同的测试。我应该如何组织事情以使其在没有大量重复努力的情况下发挥作用?
这是一个包含大量 Groovy 的 Java 项目,我计划使用 Gradle 构建它。