[英]Mockito: mocked object not injected on constructor argument
我有这个构造函数:
public class AuditsLoaderService {
public AuditsLoaderService(
BackOfficeProperties backOfficeProperties,
FrontOfficeInterfaceService frontOfficeService,
AuditService auditService,
I18nResourceBundleMessageSource messageSource,
MonitorService monitor
) {
// some code
}
}
和AuditService
是:
public class AuditService {
public AuditService(
BackOfficeProperties backOfficeProperties,
AuditFactory auditFactory,
AuditDao auditDAO,
RedisDao auditRedisDao,
ObjectMapper objectMapper,
I18nResourceBundleMessageSource messageSource
) {
进入我的测试:
@RunWith(MockitoJUnitRunner.class)
public class MalformedAuditsTest {
@Mock
private BackOfficeProperties backOfficeProperties;
@Mock
private AuditFactory auditFactory;
@Mock
private AuditDao auditDao;
@Mock
private RedisDao redisDao;
@Mock
private ObjectMapper objectMapper;
@Mock
private I18nResourceBundleMessageSource i18nResourceBundleMessageSource;
@Mock
private MonitorService monitorService;
@InjectMocks
@Spy
private AuditService auditService;
@InjectMocks
private FrontOfficeInterfaceService frontOfficeService;
@InjectMocks
private AuditsLoaderService auditsLoaderService;
}
不过,由于auditService
为null
,所以我的NulPointerException
了AuditsLoaderService
auditService
。
似乎没有注入。
我将其注释为:
@InjectMocks
@Spy
private AuditService auditService;
我是否应该添加更多代码/注释?
编辑
我刚刚意识到既没有注入frontOfficeService
也没有注入auditSerice
。
因此, 似乎所有@InjectMocks
字段都未注入其他字段
尝试添加:
@Mock
private ObjectMapper objectMapper;
因为您的AuditService
构造函数需要它
编辑 :通过在相应的构造函数中传递模拟来手动创建对象可能更容易
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.