аннотация @MockBean не работает (не вводится?) при весенней загрузке 2.3 - PullRequest
1 голос
/ 26 мая 2020

Я обновляю версию весенней загрузки с 2.1.6.RELEASE до 2.3.0.RELEASE по некоторым причинам.

К сожалению, в процессе я столкнулся с некоторыми проблемами ... одна из них здесь . Речь идет о функции имитации, в частности имитации клиента.

Самое странное, что когда я использовал Spring boot 2.1.6, все работает нормально и макетирование работает хорошо. Но после обновления версии я получил сообщение об ошибке:

java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client

, что означает, что процесс имитации не работал, так как имитирующий клиент на самом деле пытался найти сервер. Есть ли какие-либо изменения, которые я пропустил?

На всякий случай, поскольку я обнаружил, что модуль spring-boot-starter-test обновил версию 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();
        ...
    }
}

и Application. java имеет следующие аннотации:

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
...

вкратце: тот же код, тот же процесс, другая версия, ошибка.

1 Ответ

0 голосов
/ 27 мая 2020

Я нашел ответ. Совместимость версий между весенней загрузкой и весенним облаком не совпадала. Когда я использую 2.2.5.RELEASE для весенней загрузки, ошибка исчезает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...