有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案