Ошибка Cucumber :: ArityMismatchError после преобразования - PullRequest
1 голос
/ 10 августа 2010

определение моего шага

Transform /^user "([^"]*)"$/ do | email |
  Person.find_by_email(email)
end

Given /^login as (user "([^"]*)")$/ do | user |
  login_as email
end

моя особенность

login as user "ca@example.org"

Я получаю эту ошибку

And user "ca@example.org" has security role "contact"     # features/step_definitions/security_role_steps.rb:14
    And login as user "ca@example.org"                        # features/step_definitions/security_role_steps.rb:10
      Your block takes 1 argument, but the Regexp matched 2 arguments. (Cucumber::ArityMismatchError)
      features/step_definitions/security_role_steps.rb:10:in `/^login as (user "([^"]*)")$/'
      ./vendor/plugins/shway_skeletons/lib/shway_skeletons.rb:94:in `send':in `/^login as (user "([^"]*)")$/'
      features/manage_security_roles.feature:14:in `And login as user "ca@example.org"'

Я не могу понять, кто-нибудь может объяснить, что случилось с моим преобразованием огурца.

1 Ответ

2 голосов
/ 10 августа 2010

Это потому, что круглые скобки вокруг ( user "([^"] *) ") захватывают группу, а фактическое письмо захватывает другую.используйте группу без захвата или вообще не группируйте.

Given /^login as user "([^"]*)"$/ do | user |
  login_as email
end

или

Given /^login as (?:user "([^"]*)")$/ do | user |
  login_as email
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...