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 对象的字符串表示。

相关推荐
~|Bernard|1 小时前
关于go语言中二维切片的append操作陷阱
开发语言·后端·golang
c++之路1 小时前
C/C++ 全链路编译工具汇总
c语言·开发语言·c++
c238562 小时前
C++的IO流深入理解(下)
开发语言·c++
Cloud_Shy6182 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第四章 Item 27 - 29)
开发语言·人工智能·经验分享·python·学习方法
简简单单lym2 小时前
WebRTC进阶--red+ulpfec深度解析3-FEC--冗余控制机制深度解析
开发语言·webrtc
cfm_29142 小时前
RocksDB 初步了解
java
凡人叶枫2 小时前
Effective C++ 条款02:宁可以编译器替换预处理器
java·linux·c语言·开发语言·c++
ANnianStriver2 小时前
PetLumina 03 — 后端目录重构与 Web 管理后台搭建
java·前端·ai·重构·ai编程·claude code
OnlyEasyCode2 小时前
C# 发送QQ邮箱验证码or其他
开发语言·c#