junit获取连接被拒绝:连接;嵌套的异常是java。网ConnectException:使用MockRestServiceServer
我想模拟RestTemplate对象,该对象正在调用另一个microservice并接收特定设备的配置:
ResponseEntity<ConfigurationResponse> configurationResponse = restTemplate
.getForEntity("http://localhost:8081/configuration/serial/" + dto.getSerNum(), ConfigurationResponse.class);
我在模仿RestTemplate,比如:
mockServer.expect(requestTo(
"http://localhost:8081/configuration/serial/" + device.getSerNum()))
.andExpect(method(HttpMethod.GET))
.andRespond(withSuccess(toJson(
ConfigurationResponse.builder()
.ip("192.168.1.1")
.netMask("255.255.0.0")
.build()),
MediaType.APPLICATION_JSON_UTF8));
但测试开始后,我收到一个异常:
org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://localhost:8081/configuration/serial/XXX-BBB-KKK": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect
我正在实例化RestTemplate和MockRestServiceServer,如下所示:
class DeviceServiceTest {
private DeviceService deviceService;
private DeviceRepository deviceRepository = mock(DeviceRepository.class);
private RestTemplate restTemplate = new RestTemplate();
private MockRestServiceServermockServer = MockRestServiceServer.createServer(restTemplate);
@BeforeEach
void setUp() {
deviceService = new DeviceService(deviceRepository);
mockServer = MockRestServiceServer.createServer(restTemplate);
restTemplate = new RestTemplate();
}
}
我使用了下面链接中的示例 how-mock-rest-request
但并没有带来理想的效果。 如果您能给我一条建议,告诉我如何修复我的mock,以便在测试中建立连接,我将不胜感激
编辑
基于主题click,我知道我假设在服务和测试中使用相同的RestTemplate bean,但老实说,我不知道如何实现它。我正在测试的方法中实例化RestTemplate对象
共 (0) 个答案