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

相关推荐
Dr.勿忘7 分钟前
C#面试常考随笔12:游戏开发中常用的设计模式【C#面试题(中级篇)补充】
开发语言·unity·设计模式·面试·c#·游戏引擎
孔瑾熙15 分钟前
Elixir语言的网络编程
开发语言·后端·golang
DARLING Zero two♡22 分钟前
C++效率掌握之STL库:string函数全解
开发语言·c++·stl·string
神秘的t1 小时前
优选算法合集————双指针(专题二)
java·数据结构·算法·滑动窗口
关关钧1 小时前
【R语言】环境空间
开发语言·r语言
咖啡の猫2 小时前
Callable接口
java
小袁拒绝摆烂2 小时前
mybatis辅助配置
java·开发语言·mybatis
加油,旭杏2 小时前
【go语言】protobuf 和 grpc
开发语言·后端·golang
jk_1012 小时前
MATLAB中insertBefore函数用法
开发语言·matlab
算法工程师y2 小时前
基于RLS的自适应滤波器设计与Matlab实现
开发语言·算法·matlab