开发者

test sign up with devise

Devise 1.2 ruby on rails

I'm having difficulty testing sign up. When the user clicks sign up, they're logged in and i should see a flash messa开发者_JAVA百科ge. This works but my test fails. Not sure why. How does sign up work? is there some sort of internal redirect that happens? This step fails:

Then I should see "You have registered successfully. If enabled, a confirmation was sent your e-mail."

Confirmation is not enabled in my user model.


Tehcnically, you shouldn't feel the need to unit test the devise mechanism--the gem itself is well-tested. I can understand wanting to make sure it is behaving the way you configured it though, so:

Devise definitely redirects after a successful authentication. It will set the flash message and then redirect either to what you set as the root in your routes file, or if you attempted to access a page within the site and got redirected to the login page, it will redirect you back to the page you were trying to access.

For your test, try testing that you get redirected to what you set as root in your routes.rb fil. I.e. in the devise instructions, it says to set it like

root :to => "home#index"

So, in your test try something like this:

require 'spec_helper'

    describe YourController do
      include Devise::TestHelpers

      before (:each) do
        @user = Factory.create(:user)
        sign_in @user
      end

      describe "GET 'index'" do
        it "should be successful" do
          get 'index' 
          response.should be_success
        end
        it "should redirect to root" do
          get 'index'
          response.should redirect_to(root_url)
      end
    end

You can add your flash message test to this as well. Hope this helps!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜