Clearance cucumber current user

Witam,
postanowiłem sprawdzić clearance w zastępstwie authlogic, ale mam problem z testami.
Wykonując testy cucumber nie widzi mi “current_user”, dostaje:

undefined method `posts' for nil:NilClass (NoMethodError)

oczywiście w development wszystko jest w porządku i np:

@post = current_user.posts.build

idzie bez problemu.

Wujek google w ogóle nie wspomina o takim problemie więc pewnie robię coś nie tak.

pozdrawiam

Sorry za głupie pytanie, ale czy jesteś zalogowany i Twój cucumber poprawnie obsługuje sesje/ciasteczka?

Zalogowany na pewno… “chyba” (przy moim problemie już niczego nie jestem pewien)
korzystam z definicji dostarczonych z clearance:

Given I am signed up and confirmed as "email@person.com/password"

mój step

Scenario: Create post Given I am signed up and confirmed as "email@person.com/password" When I go to "create new post" page And I fill in "title" with "My new post" And I fill in "body" with "This is my new post" And I press "Create" Then I should see "Successfully created post." And I should see "My new post" And I should see "This is my new post"
no i na drugim kroku, przy

when /the create new post/ new_post_path
się wywala, kontroler Post, akcja new.
Co dziwne, jak tworzę sobie moduł UserHelpers z metodą np.

def current_user "dupa" end World(UserHelpers)
myśląc, że Cucumber z niej skorzysta i wyrzuci błąd typu

undefined method `posts' for String (NoMethodError)

ale wygląda, że cukes w ogóle tego nie widzi
co do sesji to sprawdzę, ale wydaje mi się, że tak.
Pytanie tylko, czy ktoś korzystając z clearance spotkał się z takim problemem? Bo wydaje mi się, że to co ja testuje jest podstawą.

Jeszcze dla uzupełnienia info:
Rails 2.3.5
cucumber 0.6.1
clearance (0.8.3)

A czy przechodzą Ci domyślne testy clearence:

script/generate cucumber script/generate clearance_features
Najnowszy ogórek domyślnie instaluje się z capyabarą i na dzień dobry testy nie działają. Użyłem webrata i pomogło:

script/generate cucumber --webrat

Z jednej strony dzięki clearencie błyskawicznie można wygenerować rejestracje, logowanie i całą tą otoczkę, ale z drugiej to po wygenerowaniu testów utrzymuję na dzień dobry: uninitialized constant Factory (NameError). Trochę jest to frustrujące.

[quote=tjeden]A czy przechodzą Ci domyślne testy clearence:

script/generate cucumber script/generate clearance_features
Najnowszy ogórek domyślnie instaluje się z capyabarą i na dzień dobry testy nie działają. Użyłem webrata i pomogło:

script/generate cucumber --webrat

[/quote]
To chyba nie, to.
Bez podania --webrat on sam szuka co mam zainstalowane i podinformował mnie, że znalazł webrata i z niego korzysta

You didn't explicitly generate with --capybara or --webrat, so I looked at your gems and saw that you had webrat installed, so I went with that. If you want something else, be specific about it. Otherwise, relax.

To jest też inny problem. Wcześniej wrzucało się

config.gem "thoughtbot-factory_girl", :lib => "factory_girl", :source => "http://gems.github.com"

do config/enviroments/test.rb
a teraz zgodnie z dokumentacja (to wcześniejsze też zgodne z dokumentacją)

“Note: if you install factory_girl using the gem from Gemcutter, you’ll need this in your environment.rb if you want to use Rails 2.1+’s dependency manager:”

config.gem "factory_girl", :source => "http://gemcutter.org"

do config/enviroment.rb
Bo, jeśli wrzuci się do test.rb to wywala Factory name error

Spróbuje na sztywno podać parametr --webrat, ale nie wiem czy to pomoże, próbowałeś?

pozdrawiam

Tak, po zadeklarowaniu:
HOST = “localhost” w config/enviroments/cucumber.rb
wszystkie testy przechodzą

[quote=punkracy]config.gem "factory_girl", :source => "http://gemcutter.org"
do config/enviroment.rb
Bo, jeśli wrzuci się do test.rb to wywala Factory name error[/quote]
A czy nie lepiej wrzucać wszystkie ogórkowe zależności do /config/environments/cucumber.rb?

Zalogowany na pewno… “chyba” (przy moim problemie już niczego nie jestem pewien)
korzystam z definicji dostarczonych z clearance:

Given I am signed up and confirmed as "email@person.com/password"

[/quote]
Hubert, okazało się to najmądrzejszym pytaniem :slight_smile:
Wiedziałem, że muszę być zalogowany, więc bezczelnie otworzyłem testy dostarczone przez clearance: sign_in.feature
i skopiowałem Given I am signed up and confirmed as "email@person.com/password"
dopiero przed chwilą zauważyłem to “up” i zrozumiałem, że powinienem użyć

Given I have signed in with "email@person.com/password"

którego nie ma w żadnym z feature dostarczonych z clearance, choć oczywiście jest w clearance steps.

Eh, 2 dni :slight_smile:

pozdrawiam