gpt4 book ai didi

javascript - 在 Cypress 测试中访问 "it"函数之外的夹具数据

转载 作者:行者123 更新时间:2023-11-28 21:35:48 25 4
gpt4 key购买 nike

我想以编程方式编写一系列 it() 测试,给定来自夹具的数据(这似乎是在 Cypress 中使用数据的正确方法)或其他地方。

此数据是一个对象数组,每个对象都提供我要编写的每个 it() 测试所需的必要信息。

[
{
slug: "/some-page-with-form/",
slugRedir: "/expected-redir-page-after-form-submit/",
formData: [
{
htmlName: "firstName",
type: "inputText",
},
...
]
},
...
]

下面是我想要实现的想法

describe("CMS-generated pages with forms", function() {
before(function() {
cy.fixture("forms").as("forms")
});

this.forms.forEach(({ slug, slugRedir, formData }) => {
it(`fills and submits form on ${slug}`, function() {
...
});
})
})

显然上面的方法不起作用,因为 this.formsit() 范围之外是 undefined

总而言之 - 我将如何以编程方式编写一系列 it() 测试,给定来自固定装置或可能从其他地方导入的数据?

最佳答案

我不建议你这样做。您实质上是在尝试自动生成测试,我可以理解这种冲动,但我建议将工作投入到编写测试中。这将使您有机会询问您正在尝试测试什么、是否真的需要测试以及结果意味着什么。

如果您真的认为这是明智的,您总是可以对以下表单进行全面测试:

it(`fills and submits forms', function () {
this.forms.forEach(({ ... }) => {
// assertions
})
})

要回答最初的问题,您还可以通过导入数据使数据可用:

import forms from '../fixtures/forms.json'

// ...

forms.forEach(...)

关于javascript - 在 Cypress 测试中访问 "it"函数之外的夹具数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58920878/

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