gpt4 book ai didi

testing - 如何将数据从一些 json 文件传递​​到 Gherkin 特征文件

转载 作者:行者123 更新时间:2023-11-28 21:16:46 26 4
gpt4 key购买 nike

我想通过从其他一些 JSON 文件中获取数据来参数化我的 gherkin 特征文件步骤。对此有任何建议。我几乎到处搜索,但找不到答案。

我知道在 gherkin 功能文件中使用场景大纲但示例与变量的多个值一起使用的场景,但没有寻找它。

目前我正在使用这样的方式,引号中的以下值被传递给步骤定义

    Scenario: Buy last coffee
Given There is "Starbucks" coffee
And I added "Sugarless" syrup

预期:我想从 JSON 文件或任何其他文件中获取变量数据,并将这些数据值传递给步骤定义函数。可能吗?

小 cucumber 特征文件:

    Scenario: Buy last coffee
Given There is "${data.coffeeshop}" coffee
And I added "${data.sugarType}" syrup

数据.json:

    {
"coffeeshop": "starbucks",
"sugarType": "Sugarless",

}

最佳答案

尝试将数据注入(inject)特征文件是一种常见的 Cucumber 反模式。这很难做到,部分原因是它违背了编写好的功能文件的整体精神。

Cucumber 希望您的工作方式是向下推细节并抽象流程,以便该功能不进行任何编程(循环、迭代步骤等)。您可以通过思考 json 文件中的内容以及为什么要对其进行迭代来改进您的实践。

您的 json 文件似乎想要遍历多家咖啡店,看看它们是否可以制作咖啡。因此,您的功能可以为这组咖啡店命名,然后讨论这组咖啡店是否可以做某事。也许像

Scenario: Seattle coffee shops can make an iced mocha
Given our coffee shops are located in Seattle
Then our coffee shops can make an iced mocha

并实现场景

Given 'our coffee shops are located in Seattle' do
@coffee_shops = get_seattle_coffee_shops
end

Then 'our coffee shops can make an iced mocha' do
@coffee_shops.each do | shop |
assert can_make_recipe(
shop: shop,
recipe: Recipes::IcedMocha
)
end
end

上面是一个非常粗略的开始,我会从步骤定义中提取更多代码到辅助方法中。我在这里要说明的关键部分是,场景和步骤是与一组咖啡店合作而不仅仅是一家咖啡店。

在您的场景中,辅助方法 get_seattle_coffee_shops 将加载并处理您的 json 以获取您的数据。因为这个处理已经从特征文件(非代码)下推到代码中,所以这个操作现在更容易实现。这种“Pushing the How Down”是 Cuking 时非常重要的技术,也是您应对任何涉及编程 功能文件的问题的方式。

关于testing - 如何将数据从一些 json 文件传递​​到 Gherkin 特征文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56796321/

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