gpt4 book ai didi

mocha.js - 如何使用 Cypress 断言搜索 JSON 响应

转载 作者:行者123 更新时间:2023-12-04 10:43:28 25 4
gpt4 key购买 nike

考虑到下面的 API 响应,我想断言某个值在 JSON 结构中的确切位置。就我而言,表单中皮卡丘的名称:

"abilities": [
{
"ability": {
"name": "lightning-rod",
"url": "https://pokeapi.co/api/v2/ability/31/"
},
"is_hidden": true,
"slot": 3
},
{
"ability": {
"name": "static",
"url": "https://pokeapi.co/api/v2/ability/9/"
},
"is_hidden": false,
"slot": 1
}
],
"base_experience": 112,
"forms": [
{
"name": "pikachu",
"url": "https://pokeapi.co/api/v2/pokemon-form/25/"
}]

我想扩展下面的代码片段,以不扫描整个正文,因为响应中有很多名称,而是通过表单来精确定位它:

describe('API Testing with Cypress', () => {

var baseURL = "https://pokeapi.co/api/v2/pokemon"

beforeEach(() => {
cy.request(baseURL+"/25").as('pikachu');
});


it('Validate the pokemon\'s name', () => {
cy.get('@pikachu')
.its('body')
.should('include', { name: 'pikachu' })
.should('not.include', { name: 'johndoe' });
});

提前谢谢了!

最佳答案

获取“表单”只是链接另一个 its() 的问题,但“包含”选择器似乎需要与数组中的对象完全匹配。

所以这有效

it("Validate the pokemon's name", () => {
cy.get("@pikachu")
.its("body")
.its('forms')
.should('include', {
name: 'pikachu',
url: 'https://pokeapi.co/api/v2/pokemon-form/25/'
})
})

或者如果你只有名字,

it("Validate the pokemon's name", () => {
cy.get("@pikachu")
.its("body")
.its('forms')
.should(items => {
expect(items.map(i => i.name)).to.include('pikachu')
})
})

你可以断言否定,

  .should(items => {
expect(items.map(i => i.name)).to.not.include('johndoe')
})

关于mocha.js - 如何使用 Cypress 断言搜索 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59823535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com