#json #typescript #cypress
Вопрос:
Допустим, у меня есть файл JSON под названием data.json в Github. Я могу просмотреть его в формате raw в URL-адресе Github следующим образом: https://raw.githubusercontent.com/data.json (Это гипотетический URL-адрес. Это не реально)
И предположим, что URL-адрес содержит данные JSON, подобные этому:
"users_1": [
{
"id": 1234,
"name": "Bob"
},
{
"id": 5678,
"name": "Alice"
}
]
Как извлечь все данные JSON из этого URL-адреса и сохранить их в переменной в тесте Cypress? Я знаю, что Cypress на самом деле не использует обещания, поэтому мне трудно это реализовать. До сих пор я получал это в машинописном виде:
let users; // I want this variable to store JSON data from the URL
const dataUrl = "https://raw.githubusercontent.com/data.json";
cy.request(dataUrl).then((response) => {
users = JSON.parse(response); // This errors out because response is type Cypress.Response<any>
})
Я планирую сделать что-то подобное в будущем для своего проекта при переходе с транспортира на Кипарис. У меня есть тест транспортира, который извлекает данные JSON из файла Github и сохраняет их в переменной с помощью обещания. Я хочу выполнить ту же задачу с Кипарисом.
Комментарии:
1. Ты, наверное, хочешь
response.body
или что-то в этом роде.response.body
Возможно, вы уже проанализировали JSON.
Ответ №1:
Я думаю , что вы должны использовать response.body
, и он должен был быть сериализован.
Тело запроса, которое будет отправлено в запросе. Cypress устанавливает заголовок запроса «Прием» и сериализует тело ответа с помощью опции кодирования. (https://docs.cypress.io/api/commands/request#Usage)
Комментарии:
1. Спасибо, мне потребовалось некоторое время, чтобы понять, где я должен использовать response.body, но я, наконец, смог сохранить данные JSON в переменной.