Java spring boot 2.3上的注释@MockBean不工作(未注入?)

Java spring boot 2.3上的注释@MockBean不工作(未注入?),java,spring,spring-boot,mockito,migration,Java,Spring,Spring Boot,Mockito,Migration,由于某些原因,我正在将spring boot版本从2.1.6.RELEASE升级到2.3.0.RELEASE 不幸的是,在这个过程中我遇到了一些问题。。。其中一个在这里。这是关于模拟功能,特别是假装客户端 最奇怪的是,当我使用SpringBoot2.1.6时,一切都很好,模仿也很好。 但升级版本后,我出现了一个错误: java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not hav

由于某些原因,我正在将spring boot版本从2.1.6.RELEASE升级到2.3.0.RELEASE

不幸的是,在这个过程中我遇到了一些问题。。。其中一个在这里。这是关于模拟功能,特别是假装客户端

最奇怪的是,当我使用SpringBoot2.1.6时,一切都很好,模仿也很好。 但升级版本后,我出现了一个错误:

java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client
这意味着模拟过程不起作用,因为假客户端实际上试图找到服务器。 我遗漏了什么,有什么需要修改的吗

可以肯定的是,因为我发现spring boot starter测试模块将依赖项mockito版本从2.24.2(不确定)升级到了3.3.2(也不确定),所以我尝试将mockito版本降级到原始版本,但没有显示任何更改。所以我认为问题出在弹簧上

我能做些什么来解决这个问题吗?谢谢

我有以下代码:

Test.java

@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = Application.class)
@AutoConfigureMockMvc
public class Test{
    @MockBean private FeignProxy feignProxy;
    @Autowired private ApplicationService applicationService;

    @Test
    @Transactional
    public void doTest(){
        when(feignProxy.doProxy()).thenReturn(response);
        assertDoesNotThrow(() -> {
            applicationService.doService(); // exception occurs
        }
    }
ApplicationServiceImpl.java

@Component
public class ApplicationServiceImpl implements ApplicationService{
    @Autowired private FeignProxy feignProxy;
    public void doService(){
        ...
        feignProxy.doProxy();
        ...
    }
}
java具有以下注释:

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
...

简而言之:相同的代码,相同的过程,不同的版本,错误。

我找到了答案。spring boot和spring cloud之间的版本兼容性不匹配。当我对spring引导使用2.2.5.RELEASE时,错误消失了

此特定问题从2.2.7.RELEASE开始,2.2.6.RELEASE也可以。@vinodchambole您尝试过升级Spring Cloud吗?这对我很有用,谢谢。我会试试的