2016-08-02 22 views
1

Ich habe Test (!) - Code von RESTAssured, der überprüft, dass der REST-Endpunkt mir 0 als Statuscode zurückgibt;RESTAssured erhalten einen von zwei möglichen Statuscodes

 given() 
     .contentType(CONTENT_TYPE_APPLICATION_JSON) 
    .when() 
     .get(getRestOperationPath()) 
    .then() 
     .statusCode(STATUS_CODE_OK); 

Aber jetzt ist es möglich, dass es auch Code 404 liefern kann, der als gültige Ausgabe gilt. Ich brauche meinen Test, um zu überprüfen, ob der Statuscode einer der beiden ist, aber ich kann mir nicht vorstellen, wie ich es tatsächlich tun soll. Kannst du mir zeigen, wie ich es machen kann, oder wenn es unmöglich ist?

upd:

.get (getRestOperationPath()) gibt Antwort -> können Sie Statuscode erhalten und vergleichen. geschlossen.

Antwort

1

Sie könnten dies auch die hamcrest Matcher verwenden, ohne die Antwort in eine separate Variable zu extrahieren.

Sie können eine Kombination von anyOf() verwenden und is()

import static org.hamcrest.Matchers.anyOf; 
import static org.hamcrest.Matchers.is; 

... 

given() 
    .contentType(CONTENT_TYPE_APPLICATION_JSON) 
.when() 
    .get(getRestOperationPath()) 
.then() 
    .statusCode(anyOf(is(STATUS_CODE_OK),is(STATUS_CODE_NOT_FOUND))); 
+0

hatte die Frage schließen richtige Antwort zu bekommen: D aber ich kann nicht hamcrest verwenden, so wird er mit meiner Version – Sarief

+0

Beide sind gleich verlassen gültige Optionen Nur abhängig von der Situation. Es ist nicht nötig, Hamcrest speziell dafür zu verwenden, aber wenn Sie es trotzdem hinzufügen ... – user3319803

1

.get(getRestOperationPath()) kehrt Response. Sie können .getStatusCode() und vergleichen Sie es. Geschlossen.

Antwort nur zum Schließen der Frage.