Ответ API элемента массива доступа Cypress вложен json - PullRequest
0 голосов
/ 16 июня 2020

Я не могу понять, как получить доступ к 0-му элементу в массиве как части JSON тела, чтобы проверить ответ API. Я пробовал разные способы, но ни один из них не кажется правильным.

Сейчас у меня в качестве примера есть следующее:

Думаю, это не сложно, но хоть убей, я не могу понять. Спасибо!

        cy.get('@dogs')
            .its('body')
            .its('breeds[0]')
            .its('names')
            .should('include', {
                count: ('10'),
            });

1 Ответ

0 голосов
/ 17 июня 2020

Обратитесь к . Доступ к индексам должен осуществляться индивидуально с помощью its.

Response JSON:

{
  "sample": [
    { "names": ["Dummy 1", " Dummy 2"] },
    { "names": ["Dummy 3", " Dummy 4"] },
    { "names": ["Dummy 5", " Dummy 6"] }
  ]
}

К последнему объекту в массиве следует обращаться как:

// to check a child's length
  cy.get('@sample')
    .its('body') // 'responseBody' in case of latest cypress version
    .its('sample')
    .its('2')
    .its('names')
    .its('length')
    .should('eq', 2);

// To check content
  cy.get('@sample')
    .its('body') // 'responseBody' in case of latest cypress version
    .its('sample')
    .its('2')
    .its('names')
    .its(1)
    .should('include', '6');

Скриншот:

test_screenshot1 test_screenshot2

...