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

相关推荐
PingdiGuo_guo9 分钟前
C++构造和折构函数详解,超详细!
开发语言·c++
老K的Java兵器库13 分钟前
Metaspace OOM 排查实录:一次 Spring 热部署爆掉 256 M 元空间
java·jvm·spring
来知晓21 分钟前
语音处理:音频移形幻影,为何大振幅信号也无声
开发语言·音视频
啦啦91171422 分钟前
提供一些准备Java八股文面试的建议
java·开发语言·面试
湫兮之风30 分钟前
C++:彻底理解左值和右值(从概念到实践,基础版)
开发语言·c++
考虑考虑36 分钟前
JDK25中的StableValue
java·后端·java ee
杯莫停丶1 小时前
设计模式之:简单工厂模式
java·设计模式·简单工厂模式
Lucky_Turtle1 小时前
【Java Xml】dom4j写入XML
xml·java·python
superlls1 小时前
(定时任务)接上篇:定时任务的分布式执行与分布式锁使用场景
java·分布式·后端
无敌的牛1 小时前
C++复习(1)
java·开发语言·面试