You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Integration中TransformerEndpointSpec构建方法单元测试实例化问题

解决方案:使用Mockito模拟TransformerEndpointSpec实例

要验证buildTransformerSpec()返回的Consumer是否正确配置了TransformerEndpointSpec,你不需要创建真实的TransformerEndpointSpec实例,而是可以用Mockito框架模拟这个对象,通过验证方法调用来确认配置逻辑是否正确。

测试代码示例

import org.junit.Test;
import org.mockito.Mockito;
import static org.mockito.Mockito.verify;

public class TransformerUtilTest {

    @Test
    public void testBuildTransformer() {
        // 1. 创建TransformerEndpointSpec的mock实例
        TransformerEndpointSpec mockSpec = Mockito.mock(TransformerEndpointSpec.class);
        
        // 2. 获取待测试的Consumer
        Consumer<TransformerEndpointSpec> consumer = TransformerUtil.buildTransformerSpec();
        
        // 3. 让Consumer处理mock实例
        consumer.accept(mockSpec);
        
        // 4. 验证id方法是否被传入正确的参数调用
        verify(mockSpec).id(TransformerUtil.TRANSFORMER_NAME);
        
        // 5. 验证transformer方法是否被传入正确的Transformer实例调用
        verify(mockSpec).transformer(Transformers.fromJson(ArtemisKpisMessageDto.class));
    }
}

关键说明

  • 用Mockito.mock(TransformerEndpointSpec.class)创建模拟对象,无需关心该类的构造逻辑或依赖。
  • 通过verify()方法可以精确验证目标方法是否被调用,以及调用时传入的参数是否符合预期。
  • 如果你的项目还没引入Mockito,需要在依赖管理中添加相关依赖(比如Maven的mockito-core)。

内容的提问来源于stack exchange,提问作者Bapt_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 03:14:55