我跑了devise-rspec-cucumber project黄瓜,但以下情形失败:黄瓜:对于用户方案尚未注册失败
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
未定义的方法'扁平化”的零:NilClass(NoMethodError)
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 => "[email protected]",
: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
我很困惑发生了什么事。在我看来,这个步骤定义正期待着一些我没有提供的东西。
除非@ user.nil? – user2191332 2013-04-22 01:00:37
@ user2191332,由于缺少错误信息,我无法做出更多判断。但显然'delete_user'中的逻辑不稳定,'@ user'不存在。而'User.where(:email => @visitor [:email])。first'也会抛出异常。 – 2013-04-22 01:08:25
所以我猜@ user.nil?导致错误。但是,如果我删除delete_user,并且只运行Given/^语句作为用户$ /不存在,则会发生同样的错误,我不知道为什么。另外,黄瓜不会告诉我发生错误的位置。有没有办法打开这个?谢谢。 – user2191332 2013-04-22 01:10:29