我正在传递黄瓜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”。 任何帮助将不胜感激。
答案 0 :(得分:0)
您不应使用标签登录。登录是业务功能,在每种需要登录的场景中都需要提及。如果您有很多需要登录的方案,则可以将登录步骤置于后台。例如
Feature: Admin xxx
Background:
Given I am logged in as an admin
Scenarios Do foo
When I foo
...
Scenario: Do bar
When I bar
然后,您可以使用许多不同的登录步骤来明确指定您可能具有的不同需求,如果您确实很聪明,则可以让每个步骤将工作委托给助手方法,以免重复代码,例如>
# 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
...
演员(正在做事情的人)以及他们是否已登录非常重要,以至于不能脱离场景语言。我强烈建议您在此处更改方法,而不要为此使用标签。 @