gpt4 book ai didi

arrays - Cypress 将值推送到 json 数组中

转载 作者:行者123 更新时间:2023-12-03 08:11:23 24 4
gpt4 key购买 nike

我想编译一个列表并将它们推送到 Cypress 中的 json 数组中。

这就是 json 输出的样子:

[
{
"role": "Administrator",
"scenarios": [
"clients_a",
"clients_d",
"clients_f",
....
]
}
]

这是我到目前为止的代码:

const permission_list = require('../../fixtures/permissions/permissions_admin.json')
const test_plan = 'cypress/fixtures/permissions/test_plan_admin.json'
const role = 'Administrator'

describe('Test plan creator for Administrator', () => {
it('create a test plan', () => {
//prepare the json array
cy.writeFile(test_plan, [{role: role,scenarios: []}])

cy.get(permission_list[0].granted_permissions).then((list) => {
if (Cypress.$.inArray('clients', list) != -1) {
cy.readFile(test_plan).then((scenarios) => {
scenarios.push('clients_a') // this is where I make a mistake I suppose
// write the merged list
cy.writeFile(test_plan, scenarios)
})
}
///added to handle case "clients" was not found in Array
else {
}
})
})
})

这是我的代码的输出:

[
{
"role": "Administrator",
"scenarios": []
},
"clients_a" <-- should be inside the list behind "scenarios"
]

所以很接近,但没有雪茄。如何将值“clients_a”推送到“scenarios”列表中?

最佳答案

我采取的方法是在内存中完成所有操作,并且只在最后写入一次完成的列表。

这样做会稍微加快速度,但主要优点是您无需担心附加。

const permission_list = require('../../fixtures/permissions/permissions_admin.json')
const test-plan-file-path = 'cypress/fixtures/permissions/test_plan_admin.json'
const role = 'Administrator'

describe('Test plan creator for Administrator', () => {
it('create a test plan', () => {

//prepare the json array
const scenarios = []

cy.get(permission_list[0].granted_permissions).then((list) => {
if (Cypress.$.inArray('clients', list) != -1) {
scenarios.push('clients_a')
}
})

// write the result
const plan = [{ role, scenarios}]
cy.writeFile(test-plan-file-path, plan)
})
})

这里还有一些奇怪的事情,看起来你在一个循环中推送多个项目,但这里没有循环。需要查看更多应用程序来建议如何解决该问题。

关于arrays - Cypress 将值推送到 json 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70720787/

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