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

相关推荐
道剑剑非道4 分钟前
FFmpeg + Qt 实现摄像头采集与 MP3 背景音乐 RTSP 推流
开发语言·qt·ffmpeg
吴声子夜歌9 分钟前
Java——字符编码
java·字符编码·char
冷小鱼9 分钟前
多线程编程深度解析:Java与Python框架实战指南
java·开发语言·python·多线程
武帝为此10 分钟前
【C语言进程与线程】
c语言·开发语言
fox_lht11 分钟前
第十一章 错误处理
开发语言·后端·rust
叼烟扛炮15 分钟前
C++ 知识点12 构造函数
开发语言·c++·算法·构造函数
Byte Wizard22 分钟前
C语言指针深入浅出4
c语言·开发语言
java1234_小锋29 分钟前
Spring AI 2.0 开发Java Agent智能体 - 结构化输出
java·人工智能·spring
asdfg125896329 分钟前
Java 大型项目设计的“内功心法”---面向对象和接口编程
java·开发语言
叼烟扛炮30 分钟前
C++第八讲:string 类
开发语言·c++·算法·string