我为devise-rspec-cucumber 项目运行 cucumber,但以下场景失败:
Scenario: User is not signed up
Given I do not exist as a user
When I sign in with valid credentials
Then I see an invalid login message
And I should be signed out
nil:NilClass (NoMethodError) 的未定义方法“flatten”
1 个场景(1 个失败)
4 个步骤(4 个通过)
我尝试删除除第一个步骤之外的每个步骤,但仍然失败:
Given /^I do not exist as a user$/ do
create_visitor
delete_user
end
在哪里
def create_visitor
@visitor ||= { :name => "Testy McUserton", :email => "example@example.com",
:password => "changeme", :password_confirmation => "changeme" }
end
def delete_user
@user ||= User.where(:email => @visitor[:email]).first
@user.destroy unless @user.nil?
end
但是如果我用 create_user 替换 create_visitor,它就会通过。
def create_user
create_visitor
delete_user
@user = FactoryGirl.create(:user, @visitor)
end
我很困惑发生了什么事。在我看来,步骤定义期待一些我没有提供的东西。