2010-08-02 18 views
34

Jak wypróbowałbyś devise w Railsach 3 za pomocą rSpec. Mam model UsersController i User. Oba są obecnie powiązane z Devise, piszę specyfikacje kontrolera i naprawdę mam problemy z moimi oczekiwaniami, ponieważ Devise sign_in naprawdę zakłóca pracę.Tworzenie zakłuć w rSpec i Rails3

Każda rzecz pomoże.

+2

Z opracowania, można całkowicie skrótową z modelu użytkownika: https://github.com/plataformatec/devise/wiki/How-To:-Stub-authentication-in-controller-specs – Flov

Odpowiedz

74

Zauważyłem, że jest to dość łatwe do zrobienia. Wystąpił problem z rspec2 i wymyślić, ale jest teraz rozwiązany. Myślę, że musisz zaktualizować swoje klejnoty. Następnie można napisać

require 'spec_helper' 

describe DoStuffController 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 
    end 
end 

[UPDATE] na wiki opracowują obecnie istnieje szczegółowy (i prawdopodobnie bardziej up-to-date) description.

+7

Podobnie jak notatkę dla innych, którzy mogą się z tym spotkać. Jeśli twoje potwierdzenie użycia, upewnij się, że twoja fabryka definiuje: confirm_at lub przekazujesz je. – RyanJM

+2

Istnieje szczegółowy opis tego na stronie wiki: https://github.com/plataformatec/devise/wiki/How-To:-Controllers -and-Views-tests-with-Rails-3- (i -spspec) –

+0

@KevinBedell, adres URL prawie się zgadza - brakuje ostatniego ")". Tak więc prawidłowym adresem URL jest [to] (https://github.com/plataformatec/devise/wiki/How-To:-Controllers-and-Views-tests-with-Rails-3-%28and-rspec%29) – Zabba

9

Możesz spróbować kpić z obiektu bazowego (http://wiki.github.com/hassox/warden/), na którym opiera się projekt, tutaj znajduje się link do niektórych informacji na temat tego, jak możesz to zrobić za pomocą RSpec: http://www.michaelharrison.ws/weblog/?p=349 (pozycja obejmuje również inne tematy, rozwiązanie, które chcesz jest na dole strony.)

+0

Dzięki tak dużo! Właśnie tego szukałem. – stuartc

+0

Nowa odpowiedź poniżej zapewnia lepszy sposób http://stackoverflow.com/questions/3387485/stubbing-devise-in-rspec-and-rails3/3512813#3512813 –

Powiązane problemy