0

我有一个黄瓜功能文件(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"
    }
}

上面的工作非常好。

现在我需要更多一些像 valid、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
4

1 回答 1

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
于 2013-09-17T16:35:00.360 回答