2015-05-28 15 views
8

Uderzenie API w/GET, sprawdzanie, czy element został usunięty przez zmienną globals.id, test wewnątrz forloop i kiedy wykonuję test zwraca 0/0 testów zaliczonych. Wszystkie moje dzienniki konsoli w pracy pętli for, obiekty zawierają wartości pasujące do tego, co mam również. Czy ktoś wie, jak to zrobić?POSTMAN jetpacks TESTOWANIE w pętli

var data = JSON.parse(responseBody); 


for (var i = 0; i < data.length; i++){ 
    tests["id has been deleted"] = data[i].id !== globals.id; 
    if(data[i].id !== globalID){ 
    tests["id has been deleted"] = data[i].id !== globals.id; 
    return true; 
    } 
} 
+0

Na czym dokładnie polega twoje pytanie? –

+1

?? Jak mogę odzyskać mój "test [id"] = dane [i] .id! == globals.id do rzeczywistego uruchomienia Postman całkowicie go ignoruje :( –

Odpowiedz

6

Mogę wykonać test z pętlą for. My Json:

{ 
    "rows": [ 
    { 
     "id": "2804", 
     "title": "Some title", 
     ... 
    }, 
    ... 
    ], 
    "total": "2788" 
} 

Moje testy:

for (var i in data.rows){ 
    var obj = data.rows[i]; 
    tests["title of row #" + i + " is not null"] = !!obj.title; 
    tests["title of row #" + i + " is not empty"] = obj.title !== ""; 
} 

Ale jeśli mogę użyć "return true" Listonosz pokazuje "Tests (0/0)"

+0

czy istnieje sposób, w jaki możemy wyjść z pętli, gdy pewien warunek jest prawdziwy, podobnie jak używamy przerwy, aby wyjść z pętli – sam

0

Tak Ranson Namba! Doświadczam tego samego - nawet próba zapisu do konsoli jest ignorowana w moich pętlach For. Co więcej, byłoby bardzo pomocne, aby móc określić tablice w pętli For, ale najwyraźniej Postman też na to nie pozwala. Jakie jest rozwiązanie tego ograniczającego BS?

var responseData = JSON.parse(responseBody); 
for (i = 0; i < responseData.scoringResults.length; i++) { 
    var scores = responseData[i].score; 
    for (j; j < scores.length; j++){ //scores.length = 4 at this point 
    var scoreValues = scores[j].split(","); 
    tests["Verify number of score dimensions"] = scoreValues.length === 4; 
    } 
} 
tests["Status code is 200"] = responseCode.code === 200; 

Ostatnie testy działa dobrze, po prostu nic nie można umieścić wewnątrz bądź na prace pętli, nawet prosty console.log („co”). Mała pomoc? Thx

+3

nie jest odpowiedzią na pytanie - prosimy o komentarz w sekcji komentarza –

0

Można użyć pętli forEach do iterowania zestawu wyników zwróconego w odpowiedzi. Zwraca obiekty określonego typu, które mogą być użyte do przetwarzania.

var data = JSON.parse(responseBody); 
data.forEach(function(process){ 
    var processId = "Id" + process.id; 
    //console.log("processId" + processId); 
})