检索 Cypress 夹具 JSON 数据的所有相似键值

我很难找到一种干净的方法来从 Cypress 夹具 JSON 文件中的对象中的同一键检索所有值的值。


例如,在下面的 JSON 文件(称为myPeople.json)中,我只需要下所有对象firstName的值。people


{

    "people":[

        {

            "firstName":"Bob",

            "lastName":"Dawson"

        },

        {

            "firstName":"Tom",

            "lastName": "Wild"

        },

        {

            "firstName": "Sally",

            "lastName": "Rose"

        }

    ]

}

如果我想检索 下的所有对象people,我可以执行它cy.fixture("myPeople").its("people),它将漂亮地返回所有对象。


事实证明,取回所有firstName 值非常困难。我尝试了以下方法来检索这些值,但它们没有执行我预期的操作。


cy.fixture("myPeople").its("people").its("firstName") //This doesn't work likely because it expects a specific object under the people node to look up its firstName key's value

但是,如果我传入显式索引,它将返回该索引的firstName 值:


cy.fixture("myPeople").its("people").its(0).its("firstName") //This returns the value "Bob".

我在这里可能会缺少什么?


富国沪深
浏览 115回答 2
2回答

互换的青春

不考虑 Cypress 本身,您似乎想使用 JavaScriptmap函数。例如:let people = {  "people": [    {      "firstName": "Bob",      "lastName": "Dawson"    },    {      "firstName": "Tom",      "lastName": "Wild"    },    {      "firstName": "Sally",      "lastName": "Rose"    }  ]}let firstNames = people.people.map(person => person.firstName)console.log(firstNames) // --> [ 'Bob', 'Tom', 'Sally' ] 

慕村9548890

一种选择是使用简单的 for 循环并从装置文件中访问所有数组元素。describe('Get first Name from fixtures', () => {&nbsp; beforeEach(() => {&nbsp; &nbsp; //Load Fixture File&nbsp; &nbsp; cy.fixture('myPeople.json').as('myPeople')&nbsp; })&nbsp; it('Test', () => {&nbsp; &nbsp; cy.get('@myPeople').then((myPeople) => {&nbsp; &nbsp; &nbsp; for (var i = 0; i < myPeople.people.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; //Print the first Names&nbsp; &nbsp; &nbsp; &nbsp; cy.log(myPeople.people[i].firstName)&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; })&nbsp; })})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript