java模拟测试中的记录器类
我需要模拟@Service类中的记录器来进行测试。我想验证是否将创建记录器消息。(SLF4J记录器)
我想我可以使用@Bean类来实现这一点,并使记录器成为spring上的托管Bean
但是我需要使用创建记录器。注入服务的类
有人知道怎么做吗
内森,谢谢你的重复标签和建议
我的问题是我不能使用单元测试或没有spring上下文的测试,因为我必须使用两个DBs进行集成测试
弹簧测试不允许在第一次测试中模拟记录器而不影响下一次测试
例如:
@Service
class MigrateDataService{
@Autowired private FirstDB firstDB;
@Autowired private SecondDB secondDB;
Logger logger = LoggerFactory.getLogger(MigrateDataService.class);
@Transactional(...)
public void migrate(){
Data data firstDB.getData();
if(data.isWarn()){
logger.warn("Data {} is warning", data);
}
secondDB.save(data);
}
}
我需要检测记录器。警告电话
谢谢
# 1 楼答案
这不是一个巧妙的方法,但它的工作
然后在测试代码中,将记录器设置为模拟记录器