2016-11-30 4 views
1

У меня есть тест в почтальоне, где я могу проверить строковое значение в массиве, но только если я знаю индекс, в который он возвращается. Проблема, с которой я сталкиваюсь, - это индекс, в котором возвращается значение, может быть случайным.Postman Test - проверка строковых значений в объекте в массиве

Это то, что похоже на json, которое я проверяю.

json { "cart": [{ "offeringId": "1234", "offeringName": "Test1", "totalOfferingAmount": -15, "offeringTypeQualifier": "Test", "productTypeQualifier": "Product", "quantity": -1, "messages": [], "autoAdd": false, "autoAction": "removed", "addedByProcessor": true, "qualificationLevel": "FQ", "qualificationDetails": [] }, { "offeringId": "5678", "offeringName": "Test2", "totalOfferingAmount": -15, "offeringTypeQualifier": "Test", "productTypeQualifier": "Product", "quantity": -1, "messages": [], "autoAdd": false, "autoAction": "removed", "addedByProcessor": true, "qualificationLevel": "FQ", "qualificationDetails": [] }], "isCartValidForCheckout": true, "_status": [] }

Вот мой Почтальон тест

вар данных = JSON.parse (responseBody); tests ["Verify offerId"] = data.cart [0] .offeringId === "1234"

+0

Вы, вероятно, нужно перебрать массив, чтобы увидеть, если вы нашли объект, который проходит тест, предполагая свое намерение есть «массив имеет объект с offeringId === 1234». Также скопируйте и вставьте свой код напрямую, вместо того, чтобы делать снимок экрана. – nvioli

ответ

0

Я думаю, вам нужно пройти через весь массив и проверить, содержится ли строковое значение в любом индексе.

var array = JSON.parse(responseBody) 
let testResult = array.find((each)=>{ 
    return each.offeringID === '1234' 
}); 
0

я не знаю, что вы собираетесь делать, когда проверка верно, но если это просто, чтобы проверить, что конкретный идентификатор внутри ответ, вы всегда можете сделать

var size = data.cart.length; 
var flag = false; 
for(var i = 0; i < size; i++) { 
    if(data.cart[i].offeringId === "1234") { 
    flag = true; 
    } 
} 
1

В Почтальон а хорошая стенография с регулярным выражением для тестирования известных значений.

cart.forEach(function(x, i) { 
    tests['Test known offeringName ' + cart[i].offeringName ] = true === /^Test1$|^Test2$/.test(cart[i].offeringName); } 
) 
Смежные вопросы