У меня есть тест testcafe, который проверяет ответ JSON API на наличие совпадающей строки, и независимо от того, что находится в ответе JSON, тест всегда проходит.
Я выполняю интеграцию Gherkin / Testcafe.Последний шаг «Затем» - проверка тела JSON ответа API.
logger = RequestLogger(config.serverUrl + '/api/v1/service', {
logResponseHeaders: true,
logResponseBody: true,
});
await t
.addRequestHooks(logger)
.navigateTo(config.serverUrl + '/admin/integrations')
.expect(logger.contains(record => record.response.statusCode === 200))
.ok();
await t
.expect(
logger.contains(async record => {
// console.log(record.response.headers);
const body =
record.response.headers['content-encoding'] === 'gzip'
? await getBody(record.response.body)
: record.response.body.toString();
const bodyJson = JSON.parse(body);
return bodyJson.filter(node => node.title === "Devtest").length == 1;
})
)
.ok();
В конце код должен возвращать значение true / false в зависимости от того, найден или не найден хотя бы один элемент, содержащий «Devtest».
Тем не менее, тест всегда проходит независимо от того, какое число.