繁体   English   中英

如何模拟服务和服务中的所有自动装配字段?

[英]How to mock a service and all the autowired fields in the service?

我正在寻找模拟我的服务以及其中的所有自动装配字段。 下面是服务:

@Service
public class MyServiceImpl implements MyService {
   @Autowired
   @Qualifier("propvalues")
   Map<String,String> propvalues;
   ...
   ...
}

下面是配置class

@Configuration
public class MyValuesConfig {
    @Bean(name = "propvalues")
    @ConfigurationProperties(prefix = "mysvcvalues")
    private Map<String,String> propvalues;
}

配置 class 从 application-myvalues.yml 读取

这是我的测试 class MyServiceImplTest

@ExtendWith(MockitoExtension.class)
public class MyServiceImplTest {
    @Mock
    private MyService myService;
    ...
    ...
}

现在我发现模拟服务中的自动装配字段是 null。 理想情况下,我希望在模拟服务中查看从 Map 中的配置加载的值。

而不是@Mock用户@SpyBean

@SpyBean像实际的 bean 一样注入 object,但您可以单独模拟它的任何部分。

或者您可以使用spy初始化 object 并模拟您想要的其他部分。 类似于: Mokito.spy(myService).when(....).thenReturn(...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM