Ruby on rails 如何避免Cucumber中不明确的步骤定义?

Ruby on rails 如何避免Cucumber中不明确的步骤定义?,ruby-on-rails,ruby,testing,cucumber,bdd,Ruby On Rails,Ruby,Testing,Cucumber,Bdd,我遇到了不明确的步骤定义错误。以下场景位于不同的功能文件中,并且有一个相同的步骤:然后我应该看到我的配置文件页面。如何避免这种情况发生 # authentication.feature Scenario: Successful sign in Given I visit the sign in page When I submit valid sign in information Then I should see my profile page # signing_up.fea

我遇到了不明确的步骤定义错误。以下场景位于不同的功能文件中,并且有一个相同的步骤:
然后我应该看到我的配置文件页面
。如何避免这种情况发生

# authentication.feature
Scenario: Successful sign in
  Given I visit the sign in page
  When I submit valid sign in information
  Then I should see my profile page

# signing_up.feature
Scenario: Successful sign up
  Given I visit the sign up page
  When I submit valid information
  Then I should see my profile page

# authentication_steps.rb
...
Then /^I should see my profile page$/ do
  page.current_path.should == user_path(@user)
end

# signing_up.feature
...
Then /^I should see my profile page$/ do
  page.current_path.should == user_path(@user)
end
我也遇到了错误消息的问题:

Scenario: Unsuccessful sign up
  ...
  Then I should see an error message

Scenario: Unsuccessful login
  ...
  Then I should see an error message

为什么不只使用authentication_steps.rb中的一个?我认为您可以使用任何功能文件中的所有步骤

请显示这些步骤定义。如果它们是一样的,你只需要一个。如果他们做不同的事情,那么他们应该有不同的想法names@IsmaelAbreu,我添加了步骤定义!Ismael是对的,没有必要重复步骤定义。您应该以语义作为标准对步骤进行分组。他也是对的,在任何情况下你都可以使用任何步骤,我知道了。唯一的问题是,我的
步骤定义我应该看到我的配置文件页面
取决于一个实例变量。看起来有点乱。我有没有一种方法可以将它传递给一个对象,这样我就可以引用它作为一个局部变量实例,让它依赖于一个
@user
来工作?是的,你可以有一个路由/my_配置文件,重定向到登录用户配置文件页面。或者您可以在这些步骤中指定参数。
当我使用用户名提交有效信息:“someusername”
时,我应该会看到“someusername”
的配置文件页面,这可能会在其他功能中派上用场