Невозможно издеваться над внутренним методом вызовы стороннего APIJAVA

Программисты JAVA общаются здесь
Anonymous
Невозможно издеваться над внутренним методом вызовы стороннего API

Сообщение Anonymous »

У меня есть API REST, построенный с Spring Boot, который внутренне вызывает сторонний API с помощью метода в одном из моих компонентных классов. Для тестирования интеграции я хочу издеваться над этим внутренним методом, чтобы он возвращал фиктивный ответ вместо того, чтобы сделать фактический внешний вызов API.@Service
public class TokenGeneration {
private static final Logger LOGGER = LoggerFactory.getLogger(TokenGenerationService.class);
@Autowired
ServiceHandler service;

public AccessToken_VO tokengnerate(AuhtmanReq authman) {
AccessToken_VO acc = new AccessToken_VO();
LOGGER.info("Printing the Testing Message: "+ service.cmsResponse());
return acc;
}}
< /code>
Компонент: servicehandler.class < /p>
@Component
public class ServiceHandler {

private final Logger LOGGER = LoggerFactory.getLogger(ServiceHandler.class);
public String cmsResponse()
{
StringEntity jsonEntity = new StringEntity("Hello", ContentType.create("application/json"));
return send(jsonEntity,"Service","url","reqmsgid");
}

public String send(StringEntity jsonEntity,String service,String url, String req) {
LOGGER.info("URL to be called :::");
return "TryAgain";
}}
< /code>
testmock.java class < /p>
@SpringBootTest
@AutoConfigureMockMvc
public class TestMock {

@MockBean
private ServiceHandler service;

@Test
public void testMockedMethod() {
Mockito.when(service.cmsResponse()).thenReturn("testResult");
}}

< /code>
testconfig.java class < /p>
@TestConfiguration
@Profile("test")
@RunWith(SpringRunner.class)
@AutoConfigureMockMvc
@SpringBootTest
public class TestConfig {

@Bean
public ServiceHandler service() {
return Mockito.mock(ServiceHandler.class);
}

}
< /code>
тестовый класс для контроллера < /p>
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc(addFilters = false)
class ApplicationTests {

private final Logger LOGGER = LoggerFactory.getLogger(ApplicationTests.class);

@Autowired
private MockMvc mockmvc;

@Autowired
private ObjectMapper objectMapper;

@Test
void contextLoads() throws JsonProcessingException, Exception {
AuhtmanReq auth = new AuhtmanReq();

ResultActions perform = mockmvc.perform(post("/api/test/")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(auth)));
}
}
< /code>
Что мне не хватает? Есть ли лучший подход к издеванию такого рода внутреннего стороннего вызова в тестировании Spring Boot?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -party-api

Вернуться в «JAVA»