cucumber - 如何在黄瓜钩子方法中读取标签的值
问题描述
我正在为我的黄瓜 BeforeActions 挂钩 @Before 传递标签,我想将其用作 Before 方法中的参数。
@Before("@requireLogin")
public void defaultLogin() {
do login here;
}
@Before("@newUserA")
public void login() {
do login with a user called "newUserA";
}
在第一个@Before 我使用默认登录用户,但在另一个@Before 我想发送一个标签作为使用该用户作为登录用户名的提示。
现在我不确定如何在登录方法中读取“newUserA”。任何帮助,将不胜感激。
解决方案
您不应该使用标签登录。登录是业务功能,需要在需要它的每个场景中提及。如果您有很多需要登录的场景,您可以将登录步骤放在后台。例如
Feature: Admin xxx
Background:
Given I am logged in as an admin
Scenarios Do foo
When I foo
...
Scenario: Do bar
When I bar
然后,您可以使用许多不同的登录步骤来清楚地指定您可能有的不同需求,如果您真的很聪明,您可以让每个步骤 def 将工作委托给辅助方法,这样您就可以避免重复代码,例如
# Login Steps
Given "I login as an admin" do
@i = create_user(role: 'admin')
login as: @i
end
Given "I login as Fred" do
@fred = create_user(first_name: 'Fred')
login as: @i
end
Given "Fred is logged in" do
# this one assumes that Fred has already been created
login as: @fred
end
...
演员(做事的人)以及他们是否登录都非常重要,不能被排除在场景语言之外。我强烈建议你在这里改变你的方法,不要为此使用标签。@
推荐阅读
- php - 如何更改我的 WooCommerce 商店页面标题背景颜色?
- c++ - 在 return 语句中嵌套条件运算符
- mysql - 使用每个帐户的最近日期的所有帐户的值总和
- c# - 如何有效地比较大量照片以找到重复项
- java - GenCollectForAllocation 是什么意思?
- q# - 访问模拟器或跟踪模拟器的调用图
- c# - 如何在 OData 中全局更改 MaxExpansionDepth 设置
- python - 在 matplotlib 中将绘图附加到 HTML 文件
- javascript - 反应:链接到另一个 html 页面上的 div
- c# - 在 EF 核心中搭建脚手架时出现 sql 连接字符串错误?