Chcę zablokować zalogowanego użytkownika (z Devise/Warden) za pomocą rspec mocks w pakiecie testowym Capybara w mojej aplikacji Rails. Oszczędziłoby to mnóstwo czasu i oznaczałoby, że mój pakiet testowy może/będzie działał regularnie.Jak wykraść strażnika/eksploratora przy pomocy Rspec w teście Capybara
Wcześniej byłem w stanie to zrobić przy użyciu Authlogic przez gasząc mój model sesji z kodem jak poniżej:
def login(user)
user_session = mock_model(UserSession, {:user => user})
UserSession.stub(:find).and_return(user_session)
end
Teraz używam opracowania, nie mam już dostępu do obiektu UserSession. A ponieważ używam kapibara do testowania mojego kodu, nie mam bezpośredniego dostępu do obiektu żądania, aby użyć wbudowanego w test programisty pomocnika dev212.
Moje pytanie brzmi: w jaki sposób mogę zasymulować zalogowanego użytkownika za pomocą kapibarów, narzędzi i specyfikacji, nie wymagając żadnego scenariusza z zalogowanym użytkownikiem, aby najpierw przejść do ścieżki rejestracji, wypełnić formularz, wysłać, odczekać w celu uzyskania odpowiedzi, a następnie przejdź do żądanej strony?
Nie co pytasz, ale na wszelki wypadek [login.rb] (https://github.com/gitlabhq/gitlabhq /blob/master/spec/support/login.rb) i [sample_use.rb] (https://github.com/gitlabhq/gitlabhq/blob/master/spec/requests/dashboard_issues_spec.rb) – clyfe
Dzięki za odpowiedź Mam już coś takiego, czego staram się uniknąć. Chociaż twój komentarz jest z pewnością pomocny dla tych przyszłych użytkowników, którzy mogą nie. – Schneems