2015-05-28 47 views
8

通过GET GET请求检查API,检查是否已经通过globals.id变量删除了项目,在forloop中进行测试,并在运行测试时返回0/0测试通过。我所有的控制台日志都在for循环中工作,这些对象包含与我所拥有的值相匹配的值。有人知道怎么做吗?POSTMAN jetpacks TESTING for for循环

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

你的问题到底是什么? –

+1

??我如何得到我的“测试[”ID已被删除“] = data [i] .id!== globals.id实际运行。邮差​​完全忽略它。( –

回答

6

我可以用for循环做测试。 我的JSON:

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

我的测试:

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 !== ""; 
} 

但是,如果使用 “返回true” 邮差显示 “测试(0/0)”

+0

有没有什么办法可以退出循环时有些条件是真的,就像我们使用break来退出循环。 – sam

0

是兰森难波!我遇到同样的事情 - 即使试图写入控制台也会在我的For循环中被忽略。更重要的是,能够在For循环中指定数组将会非常有用,但显然Postman不允许这样做。什么是所有这个限制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; 

最后的测试工作正常,只是你把里面的无论是循环的作品没有什么,甚至一个简单的console.log(“什么”)。一点帮助? Thx

+3

不是问题的答案 - 请在评论部分留言 –

0

您可以使用forEach循环来迭代响应中返回的结果集。它返回可用于处理的指定类型的对象。

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