我正在尝试测试用户注册。使用rails + devise 1.1.rc2 我有这个测试:
Given I am on the landing page
When I go to the registration page
And I fill in "Firstname" with "F"
And I fill in "Lastname" with "L"
And I fill in "Country" with "C"
And I fill in "State" with "S"
And I fill in "City" with "C"
And I fill in "Email" with "me@gmail.com"
And I fill in "Password" with "password"
And I fill in "Password Confirmation" with "password"
And I press "Register"
Then I should see "You have registered successfully. If enabled, a confirmation was sent your e-mail."
这是错误摘录:
expected the following element's content to include "You have registered successfully. If enabled, a confirmation was sent your e-mail.":
You are being redirected. (RSpec::Expectations::ExpectationNotMetError)
./features/step_definitions/web_steps.rb:145:in `/^(?:|I )should see "([^"]*)"$/'
features/registration.feature:42:in `Then I should see "You have registered successfully. If enabled, a confirmation was sent your e-mail."
我认为这与重定向有关,不知道如何解决这个问题?但是在我的app_controller.rb中我有这个,所以用户被带到仪表板页面......
def after_sign_in_path_for(resource_or_scope)
"/dashboard"
end
它只是测试失败,实际的注册功能很好。
答案 0 :(得分:1)
这已在另一个堆栈溢出帖子中得到解答。基本上,flash消息不会通过redirect_to持久存在,但渲染:action => xxxx将使其有效。
authlogic flash[:notice] does not show up in cucumber webrat step
答案 1 :(得分:0)
我建议将Devise升级为最新版本(1.2,当前正在撰写)。
然后我会通过将Then show me the page
置于失败的步骤之上来调试此处发生的事情。我认为你的flash消息是错误的。