gpt4 book ai didi

cucumber - 您能否在 Cucumber 的 Given、When 和 Then 步骤定义期间定义实例变量

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

我知道使用 Cucumber,您可以在给定步骤定义期间定义实例变量。
此实例变量成为 World 的一部分范围。
然后您可以在 When 和 Then 的步骤定义期间访问此实例变量。

您是否也可以在 When 和 Then 步骤定义期间定义实例变量
并在稍后的 When 和 Then 步骤定义中访问它们?

如果可能的话,在期间定义实例变量甚至是一种常见的做法吗?
何时和然后步骤定义?

谢谢你。

最佳答案

是的,您可以在任何步骤类型期间设置实例变量。

例如,给定以下功能:

Feature: Instance variables

Scenario: Set instance variables during all steps
Given a given step sets the instance variable to "1"
Then the instance variable should be "1"
When a when step sets the instance variable to "2"
Then the instance variable should be "2"
Then a then step sets the instance variable to "3"
Then the instance variable should be "3"

以及步骤定义:
Given /a given step sets the instance variable to "(.*)"/ do |value|
@your_variable = value
end
When /a when step sets the instance variable to "(.*)"/ do |value|
@your_variable = value
end
Then /a then step sets the instance variable to "(.*)"/ do |value|
@your_variable = value
end
Then /the instance variable should be "(.*)"/ do |value|
@your_variable.should == value
end

您将看到场景通过,这意味着 when 和 then 步骤成功设置了实例变量。

事实上, Given、When 和 Then 只是彼此的别名。仅仅因为您将步骤定义定义为“Given”,它仍然可以称为“When”或“Then”。例如,如果使用的步骤定义是:
Then /a (\w+) step sets the instance variable to "(.*)"/ do |type, value|
@your_variable = value
end
Then /the instance variable should be "(.*)"/ do |value|
@your_variable.should == value
end

请注意,场景中的“Given”和“When”可以使用第一个“Then”步骤定义。

至于在 when 和 then 步骤中设置实例变量是否是好的做法,并不比在给定步骤中设置更差。理想情况下,您的任何步骤都不会使用实例变量,因为它们会创建步骤耦合。但是,实际上,我在使用实例变量时并没有遇到重大问题。

关于cucumber - 您能否在 Cucumber 的 Given、When 和 Then 步骤定义期间定义实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20546588/

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