Mockito设置mock返回值后,generateExcel仍返回null求助
问题排查与解决
针对你遇到的excelGenerationService.generateExcel始终返回null的问题,结合你的Mock配置,从以下几个方向排查:
确认Mock对象初始化正确
确保excelGenerationService是通过Mockito创建的Mock实例(比如用@Mock注解或Mockito.mock(ExcelGenerationService.class)),而非真实的服务实例。如果是真实实例,Mock配置不会生效。检查参数匹配器的兼容性
你使用的anyList()默认匹配的是List<Object>,如果generateExcel方法中接收的是特定泛型的List(比如List<ReportData>),需要替换为anyListOf(具体泛型类.class),否则参数匹配失败,Mock行为不生效,会返回默认的null。核对方法签名完全匹配
确认你Mock的方法签名和实际调用的方法完全一致:- 参数的数量、顺序、类型必须完全对应
- 如果存在重载的
generateExcel方法,要确保匹配的是你实际调用的那一个
确保Mock行为先于方法调用
必须在调用excelGenerationService.generateExcel()之前执行doReturn(...).when(...)的配置,否则Mock规则不会生效。验证Mock配置是否生效
可以添加Mockito的验证代码,确认方法是否被正确匹配调用:verify(excelGenerationService).generateExcel(any(ReportingTemplate.class), anyList(), anyList(), anyList(), anyString(), anyString(), anyBoolean(), anyBoolean(), anyString(), anyBoolean());如果验证失败,说明参数匹配或方法签名存在问题。
内容的提问来源于stack exchange,提问作者Petr Kostroun
相关产品推荐
相关产品推荐

