2017-08-16 2 views
1

Swagger API-Client, generiert von Codegen-Tool, erstellt nur Testmethoden mit Rückgabetyp void. Wie kann ich meine Ruhe api testen?Swagger API Client-Methoden geben void zurück

Dies ist mein Service-Code-Spezifikation:

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

Und das ist mein erzeugt Prahlerei Code zum Testen:

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

ich eine Prahlerei Client api generieren mit:

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

Können Sie Ihre Spezifikation veröffentlichen? Welche Sprache/Framework hast du erstellt? – Helen

Antwort

1

Der Java Generator für Swagger Codegen tut das Beste, was es kann - es hat Testcode mit Funktionen (mehr wie Funktions-Stubs), in denen Sie den Wert der Parameter eingeben können, die an die API-Endpunkte übergeben werden sollen, z. B. die Variablen String username und String password oben. Danach wird der api-Endpunkt aufgerufen.

Nach dem API-Aufruf (api.authenticate(username, password) oben) müssen Sie irgendwie überprüfen, ob die Antwort erfolgreich war. Dies benötigt ein menschliches Element, abhängig von Ihrer API, und der // TODO Kommentar ist ein Hinweis für Sie, dasselbe zu tun.

Wenn die API erfolgreich aufgerufen wird, tun Sie nichts und die Void-Funktion wird beendet. Andernfalls muss Ihr Code eine ApiException wie in den Kommentaren geschrieben werfen.

Verwandte Themen