2017-08-16 7 views
1

codegenツールで生成されたSwagger APIクライアントは、戻り値タイプのテストメソッドのみを作成します。void。私はどのように私の残りのAPIをテストできますか?Swagger APIクライアントメソッドreturn void

これは私のサービスコードの仕様です:

@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) 
{..} 

そして、これはテストのための私の生成闊歩コードです:

/** 
    * 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 
}} 

私が闊歩クライアント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 
+1

スペックを掲載できますか?どの言語/フレームワークを生成しましたか? – Helen

答えて

1

JavaSwagger Codegenのジェネレーターは可能な限り最良です上記の変数String usernameString passwordのように、APIエンドポイントに渡すパラメータの値を入力できる関数(関数スタブによく似ています)を使用したテストコードです。その後、apiエンドポイントが呼び出されます。

上記のの呼び出し後、応答が成功したかどうかを何らかの形で検証する必要があります。これにはAPIに応じて人間の要素が必要です。また、// TODOのコメントは同じことをするヒントです。

APIが正常に呼び出された場合、何もせずにvoid関数が終了します。そうでなければ、あなたのコードはコメントに書かれているようにApiExceptionを投げる必要があります。

関連する問題