java - Swagger api 客户端方法返回 void

标签 java api testing swagger codegen

Swagger api 客户端,由 codegen 工具生成,仅创建返回类型为 void 的测试方法。如何测试我的休息 api?

这是我的服务代码规范:

 @Api(value = "Authentication Recovery")
 @Path("/authenticationRecovery")

public class AuthenticationRecoveryResource implements Authentication{

@ApiOperation(
        value = "Recover access token"
        , notes = "Recover access token assigned to the user (once it has been authenticated)"
        , response = TokenJAXB.class
        //, responseContainer = "List"
)
@ApiResponses(value = { 
        @ApiResponse(code = HttpURLConnection.HTTP_OK, message = "Authorized access") ,
        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = "Unauthorized access") 
})
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response authenticate(
        @ApiParam(value="Username", required=true) @FormParam("username") String username,
        @ApiParam(value="Password", required=true) @FormParam("password") String password) 
{..}

这是我生成的用于测试的 swagger 代码:

/**
  * API tests for AuthenticationRecoveryApi
*/
@Ignore

public class AuthenticationRecoveryApiTest {

private final AuthenticationRecoveryApi api = new AuthenticationRecoveryApi();

/**
 * Recover access token
 *
 * Recover access token assigned to the user (once it has been authenticated)
 *
 * @throws ApiException
 *             if the Api call fails
 */
@Test
public void authenticateTest() throws ApiException {
    String username = null;
    String password = null;
    api.authenticate(username, password);

    // TODO: test validations
}}

我已经生成了一个 swagger 客户端 api:

java -jar swagger-codegen-2.2.3/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i http://localhost:8080/myproject/services/service0/swagger.json -l java -o client/myproject/java

最佳答案

Swagger CodegenJava 生成器尽其所能 - 它具有带函数的测试代码(更像是函数 stub ),您可以在其中填写值要传递给 API 端点的参数,例如上面的变量 String usernameString password。之后,调用 api 端点。

在 api 调用(api.authenticate(username, password) 上面)之后,您必须以某种方式验证响应是否成功。这需要人为因素,具体取决于您的 API,//TODO 注释提示您也这样做。

如果 API 调用成功,则什么都不做,void 函数退出。否则,您的代码需要抛出注释中所写的 ApiException

关于java - Swagger api 客户端方法返回 void,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45709567/

相关文章:

security - 您如何测试 SSL 客户端库是否正确验证了它所连接的服务器的证书?

java - 二维数组中缺少数组检查 - Java

JAVA 错误的变量引用?收到奇怪的输出 - 可能是内存地址?

api - 授权 Facebook 将用户与其他第三方联系起来

javascript - 如何在测试值或子对象之前测试父对象的存在

node.js - 执行测试时检查数组的长度

java - 如何从 Java 中的整数映射和长整型列表返回一定范围内的随机值

java - 从 Java 运行 Python 脚本

ruby-on-rails - 通过 hotmail 与 Rails 联系进行邀请

java - 如何处理接口(interface)子类的变化?