1

我正在做我的集成测试,我想用 Java 的 MockServer 模拟 API 调用。MockServersClient 有一个模拟响应的方法,但只能通过字符串作为参数。例子:

new MockServerClient("localhost", 1080)
    .when(
        request()
    )
    .respond(
        response()
            .withBody("some_response_body")
    );

我有一个服务方法,它返回我想要的对象作为响应,我计划通过调用该服务方法来访问数据,然后将其作为响应传递给已经提到的 MockServer 方法.withBody()。就像是:

new MockServerClient("localhost", 1080)
    .when(
        request()
    )
    .respond(
        response()
            .withBody(new MyServiceClass().callMyServiceMethod())
    );

我想我需要转换从服务方法获得的响应,但是如何转换?

4

1 回答 1

1

您需要将模拟响应转换为实际响应的类型。

因此,如果您有 type 的实际 api,则application/json需要将模拟响应转换为:

new MockServerClient("localhost", 1080)
    .when(
        request()
    )
    .respond(
        response()
            .withBody(convertToJson(new MyServiceClass().callMyServiceMethod()))
    );

这里要确保的一件事是您需要具有与实际 api 完全相同的响应对象/dto

于 2020-06-10T08:02:38.873 回答