仅为集成测试创建模块

问题描述 投票:0回答:1

假设我有 3 个模块:

  1. core-module
    - 项目的核心模块
  2. communication-api
    - api 模块公开用于通信服务的 API
  3. communication-msg-impl
    - communications-api 的具体实现(少数之一)

现在

core-module
依赖于基础中的
communication-api
,当将此
core-module
用于具体项目时,用户将依赖项添加到项目中的
communication-api
实现之一。

communication-msg-impl
依赖于
communication-api

我想创建在

core-module
使用
communication-msg-impl
时测试整个流程的测试,但是此测试需要位于
module-core
包中,因为它需要模块的功能,但这意味着我需要添加依赖项
communication-msg-impl
到它。这不是我们想要的行为。

为这些集成测试创建完全不同的模块是个好习惯吗?

我可以有多个

communication-msg-impl
模块(每个模块用于不同的实现),所以这意味着我需要为每个实现创建新的“测试”模块。

谢谢各位的解答

java maven testing dependencies
1个回答
0
投票

我想创建在核心模块使用时测试整个流程的测试 communications-msg-impl,但是这个测试需要在 module-core 包,因为它需要模块的功能

这不一定是真的,您可以将依赖于

communication-msg-impl
的测试放在
communication-msg-impl
模块中,并将
core-module
作为
<scope>test<scope>
依赖项添加到
communication-msg-impl
。由于它只是一个测试依赖项,因此
communication-msg-impl
jar 不会依赖于
core-module

为这些集成测试创建完全不同的模块是个好习惯吗?

这是一个可以接受的解决方案。如果您有许多

impl
模块,那么创建一个
integration-test
模块是有意义的,该模块依赖于所有
impl
模块以及
core-module

© www.soinside.com 2019 - 2024. All rights reserved.