我有一个黄瓜特征文件(login.feature):
When I login with invalid credentials
相应的步骤定义(在login_steps.rb中)为:
When(/^I login with 'invalid' credentials$/) do
@page.login(USERS[:invalid])
end
env文件夹下的user.rb包含:
USERS = {
:valid => {
:username => "peterpan",
:password => "xyz"
},
:invalid => {
:username => "invalidusername",
:password => "testtest"
}
}
以上工作完全没问题。
现在我需要更多像有效,validwithusernameonly,validwithpasswordonly等。例如,步骤:
When I login with 'invalid' credentials
When I login with 'valid' credentials
When I login with 'validwithusernameonly' credentials
假设这些凭据位于user.rb
中我需要在下面的步骤定义中将user_credential_identifier传递给USERS,如下所述。
When(/^I login with '(.+)' credentials$/) do |user_credential_identifier|
@page.login(USERS[:invalid])
end
答案 0 :(得分:0)
您已从步骤中捕获了一个字符串 - 例如“有效”。由于您的USERS哈希使用符号作为键,因此您需要将字符串转换为符号。这可以使用.to_sym
方法完成:
user_credential_identifier.to_sym
将此概念应用于您的步骤,它将成为:
When(/^I login with '(.+)' credentials$/) do |user_credential_identifier|
@page.login(USERS[user_credential_identifier.to_sym])
end