猿问

如何在 HTTP 客户端 apache 上编写测试?

我正在尝试为我的服务编写一个测试,该测试与另一个从数据库返回项目的服务建立连接。我的问题是我在测试中设置了连接属性并启动了服务。这怎么可能是模拟或类似的?


我的启动服务方法:


public void doStartService() {

        super.doStartService();

        PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager();

        manager.setDefaultMaxPerRoute(maxConnectionsPerRoute);

        manager.setMaxTotal(maxConnections);


        RequestConfig requestConfig = RequestConfig.custom()

                .setConnectTimeout(connectTimeout)

                .setSocketTimeout(socketTimeout)

                .setRedirectsEnabled(false).build();


        HttpClientBuilder builder = HttpClientBuilder.create();

        builder.setDefaultRequestConfig(requestConfig);

        builder.setConnectionManager(manager);

        client = builder.build();

    }

我的设置测试方法和一种测试方法:


private ProductCatalogIntegrationService service;


 @Before

    public void setup() {

        service = new Service();

        service.setConnectTimeout(10000);

        service.setSocketTimeout(10000);

        service.setMaxConnections(10);

        service.setMaxConnectionsPerRoute(10);

        service.setUrl("http://localhost:8888/products");

        service.doStartService();

    }



    @Test

    public void testReturnProductById() {

        service.setProductById(GET_PRODUCT_BY_ID); // set url from get product by id, by this url my other service goes to the database

        jsonItem = service.getProductById("1"); //get product by id 1


        assertEquals(jsonItem.getId(), FIRST_PRODUCT_ID); // I compare the id on which I made the request to the database, so that I came and was wrapped in a class wrapper

    }

如何正确执行,以免在测试中配置连接?


UYOU
浏览 134回答 1
1回答

Qyouu

Javalin将是模拟真实服务的绝佳工具,因为它允许在测试中进行状态断言。也可以使用Wiremock 。但这会导致难以维护行为测试(验证)。
随时随地看视频慕课网APP

相关分类

Java
我要回答