Я использую cypress.io в качестве своей платформы автоматизации для тестов API и UI. Я написал несколько тестов API, которые выполняются и проходят, но они только подтверждают, что response.status
возвращает 200
. Я хочу сравнить ответ json от GET
с сохраненным «ожидаемым» ответом, чтобы подтвердить правильность данных ответа json.
Я пробовал разные варианты to.deep.equal
и deepEquals
в моем .then(response => {}
блоке кода. Но я не хочу проверять, что только одно поле возвращает правильное значение, я хочу проверить, возвращает ли несколько разных полей правильные значения. Мой запрос GET
возвращает более 100 строк вложенных полей / значений json, и я хочу проверить только 20 или около того полей / значений, вложенных друг в друга.
* Примечание: игнорируйте revId
, это из более раннего запроса.
cy.request({
method: 'GET',
log: true,
url: 'https://dev.api.random.com/calculators/run-calculate/524/' +
revId,
headers: {
'content-type': 'application/json',
'x-api-key': calcXApiKey
},
body: {}
}).then(response => {
const respGet = response.body
const tPrice = response.body.data.calculations.t_costs[0].comparison.t_price
cy.log(respGet, tPrice)
assert.deepEqual({
tPrice
}, {
t_price: '359701'
})
// assert.equal(response.status, 200) -- This works great
})
Ошибка = expected { tPrice: undefined } to deeply equal { t_price: 359701 }