我们可以在黄瓜中调用另一个场景中的一个场景吗?
Can we call one scenario inside another scenario in cucumber?
我开始使用行为驱动工具 cucumber。它是一个有趣的工具。当我正在处理一个问题时。大多数时候我都遇到过,我没有重用我的代码。
这就是为什么我要从另一个场景调用一个场景。我搜索过但没有找到任何帮助。我可以这样做吗?
另一个相同的问题已发布 here on github
这可能是您要查找的内容:https://github.com/cucumber/cucumber/wiki/Calling-Steps-from-Step-Definitions
因此,您可以做几件事。如果您有一个步骤想要重复使用,如下所示:
Given /^I log in as (.*)$/ do |name|
# ...
end
您可以像这样在另一个步骤中调用它:
Given /^(.*) is logged in$/ do |name|
step "I log in as #{name}"
end
您还可以在步骤定义中执行以下操作:
steps %Q{
Given I log in as #{name}
}
我遇到了同样的问题 - 并找到了这个 post。也许是故意的,你不能从其他场景中调用场景。该框架基于您考虑创建实用的 Stepdefinitions,因此它们可以多次使用。基础是在创建步骤之前思考...
我创建了自己的登录方法步骤、到搜索页面或新文件的页面转换等。
因此,在许多场景中,我重复使用这些步骤 - 然后添加新步骤(也可以重复使用)。
现在你可以想想一步应该有多大了。您可以将其调整为测试对象中的一个动作,或将其用作例程以通过多个动作到达测试的某个起点。例如。 Given Go to Startpage of creating a security request
Java代码:
@Given ("^Go to Startpage of creating a security request$")
public void GoToStartpageOfCreatingASecurityRequest(){
//logic to get to the demanded point in testobject...
}
因此,与任何其他框架一样,cucumber 也有其局限性,但它们是有意为之的,您有办法解决它。 ;)
不要忘记在测试中使用断言。无论您使用 JUNIT 还是 TestNG(我使用 TestNG)。 ;)
我开始使用行为驱动工具 cucumber。它是一个有趣的工具。当我正在处理一个问题时。大多数时候我都遇到过,我没有重用我的代码。
这就是为什么我要从另一个场景调用一个场景。我搜索过但没有找到任何帮助。我可以这样做吗?
另一个相同的问题已发布 here on github
这可能是您要查找的内容:https://github.com/cucumber/cucumber/wiki/Calling-Steps-from-Step-Definitions
因此,您可以做几件事。如果您有一个步骤想要重复使用,如下所示:
Given /^I log in as (.*)$/ do |name|
# ...
end
您可以像这样在另一个步骤中调用它:
Given /^(.*) is logged in$/ do |name|
step "I log in as #{name}"
end
您还可以在步骤定义中执行以下操作:
steps %Q{
Given I log in as #{name}
}
我遇到了同样的问题 - 并找到了这个 post。也许是故意的,你不能从其他场景中调用场景。该框架基于您考虑创建实用的 Stepdefinitions,因此它们可以多次使用。基础是在创建步骤之前思考...
我创建了自己的登录方法步骤、到搜索页面或新文件的页面转换等。 因此,在许多场景中,我重复使用这些步骤 - 然后添加新步骤(也可以重复使用)。
现在你可以想想一步应该有多大了。您可以将其调整为测试对象中的一个动作,或将其用作例程以通过多个动作到达测试的某个起点。例如。 Given Go to Startpage of creating a security request
Java代码:
@Given ("^Go to Startpage of creating a security request$")
public void GoToStartpageOfCreatingASecurityRequest(){
//logic to get to the demanded point in testobject...
}
因此,与任何其他框架一样,cucumber 也有其局限性,但它们是有意为之的,您有办法解决它。 ;)
不要忘记在测试中使用断言。无论您使用 JUNIT 还是 TestNG(我使用 TestNG)。 ;)