Java单元测试Mock接口模拟调用其中某个方法

java 复制代码
@Test
void bondCalculate() {
	Bc6CalculateRequestDto requestDto = new Bc6CalculateRequestDto();
	requestDto.setTradeDate(LocalDate.now());
	requestDto.setSpeed(SpeedEnum.T_1.getSpeed());
	requestDto.setCalcType(Strings.concat(ModifyFieldEnum.RATE.getField(), ModifyFieldEnum.FIRST_AMOUNT.getField()));
	//
	Bc6CalculateServiceImpl bc6CalculateService = Mockito.spy(new Bc6CalculateServiceImpl());
	String allTradeDateListStr = ExcelUtil.excelToJsonStr("bc6/NibTradeDate.xlsx");
	List < NibTradeDateCloudDto > allTradeDateList = ObjectMapperUtil.parseArray(allTradeDateListStr, NibTradeDateCloudDto.class);
	Mockito.doReturn(allTradeDateList).when(bc6CalculateService).getAllTradeDateList();
	//
	Bc6CalcResponseDto responseDto = bc6CalculateService.bondCalculate(requestDto);
	System.out.println(responseDto.toString());
}

这个测试方法模拟了 Bc6CalculateService 的一个实例,并试图测试 bondCalculate 方法。它使用了 Mockito.spy 来创建一个真实对象的部分模拟(间谍),并模拟了 getAllTradeDateList 方法的行为。然后,它调用了 bondCalculate 方法并打印了返回的 Bc6CalcResponseDto 对象的字符串表示。

相关推荐
Joy T2 小时前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
m0_587383005 小时前
广州 24 小时自助健身房解决方案技术实现与实战指南
java·spring·小程序·架构·需求分析
·云扬·6 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
专注仿真6 小时前
引擎扩展性与集成设计深度剖析:从 14 个扩展点到 DIS→HLA 演进之路
开发语言·算法·仿真引擎·推演引擎
Best-Wishes6 小时前
科来网络分析系统(技术交流版)使用说明书
开发语言·junit·php
代码不停7 小时前
自动化测试(java)
java·开发语言·selenium·自动化
鬼手点金9 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
爱上网的小舟9 小时前
星际战士2启动错误怎么办?5种游戏报错解决方法
开发语言·php
2302_805771079 小时前
Day24:DDT+EXCEL数据驱动
功能测试·单元测试·自动化·测试用例·需求分析·web自动化
paopaokaka_luck9 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts