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.
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)
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.
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:”
[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
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.