首页 > 解决方案 > 在 Spring Boot 中未在 Mockito 中注入 Autowired

问题描述

我有一个测试班。在该测试类中调用以下方法。

JanrainLoginResponse output = janrainService.authenticate(input);

janrainService 是这样初始化的

@InjectMocks
private JanrainServiceImpl janrainService;

验证方法中的代码:

JanrainResource data = janrainClient.checkLogin(input);

janrainClient在服务类中正确调用。在JanrainClient类 apiDetails 中是这样初始化的。

@Autowired
public JanrainApiDetails apiDetails;

但是当我使用 apiDetails details 我得到空指针异常。那么如何注入这个bean呢?第一级模拟工作正常,但在第三级 bean 注入中没有完成。

标签: mockito

解决方案


只需添加

@Mock
private JanrainApiDetails apiDetails;

通过这种方式,bean 被模拟并注入到服务中(使用@InjectMocks 进行注释)。


推荐阅读