发生的事情是你的ValidationService被包装在JdkDynamicAopProxy中,因此,当Mockito将模拟程序注入到服务中时,它看不到任何将其注入的字段。你需要执行以下两项 *** 作之一:
- 放弃启动Spring Application Context并仅测试Validation Service,迫使你模拟每个依赖项。
- 或从JdkDynamicAopProxy中解开你的实现,然后自己处理注入模拟。
代码示例:
@Beforepublic void setup() throws Exception { MockitoAnnotations.initMocks(this); ValidationService validationService = (ValidationService) unwrapProxy(level2ValidationService); ReflectionTestUtils.setField(validationService, "countryService", countryService);}public static final Object unwrapProxy(Object bean) throws Exception { if (AopUtils.isAopProxy(bean) && bean instanceof Advised) { Advised advised = (Advised) bean; bean = advised.getTargetSource().getTarget(); } return bean;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)