J'ai ajouté le plugin authlogic_facebook_connect à mon projet et j'ai maintenant des problèmes pour lancer mon test de concombre à cause d'une NoMethodError.Authlogic Facebook Connectez-vous et concombre
undefined method `set_facebook_session' for nil:NilClass (NoMethodError)
Dans authlogic_facebook_connect/Session.rb la méthode "authenticating_with_facebook_connect?" est appelé comme une sorte de rappel et le contrôleur est défini mais il manque la méthode 'set_facebook_session'. Je ne comprends pas pourquoi le test de concombre ne charge pas le contrôleur avec cette méthode. Je teste également l'application dans les environnements de développement et de concombre et tout fonctionne parfaitement.
Voici la sortie complète du concombre.
Feature: Authentication
In order to keep security a user should only be able to edit their own profile
Background: # features/authorization.feature:4
Given a valid user record for joe_runner # features/step_definitions/user_steps.rb:4
undefined method `set_facebook_session' for nil:NilClass (NoMethodError)
./vendor/plugins/authlogic/lib/authlogic/controller_adapters/abstract_adapter.rb:63:in `send'
./vendor/plugins/authlogic/lib/authlogic/controller_adapters/abstract_adapter.rb:63:in `method_missing'
./vendor/plugins/authlogic_facebook_connect/lib/authlogic_facebook_connect/session.rb:132:in `authenticating_with_facebook_connect?'
./vendor/plugins/authlogic/lib/authlogic/session/callbacks.rb:83:in `validate'
./vendor/plugins/authlogic/lib/authlogic/session/validation.rb:64:in `valid?'
./vendor/plugins/authlogic/lib/authlogic/session/existence.rb:65:in `save'
./vendor/plugins/authlogic/lib/authlogic/session/existence.rb:30:in `create'
./vendor/plugins/authlogic/lib/authlogic/acts_as_authentic/session_maintenance.rb:113:in `create_session'
./vendor/plugins/authlogic/lib/authlogic/acts_as_authentic/session_maintenance.rb:103:in `maintain_sessions'
./features/step_definitions/user_steps.rb:5:in `/^a valid user record for ([\w]*)$/'
features/authorization.feature:5:in `Given a valid user record for joe_runner'
Scenario: Jonathan can edit his profile but not other users profiles # features/authorization.feature:7
Given jonathan is logged in as an user # features/step_definitions/user_steps.rb:13
When I go to my user edit page # features/step_definitions/web_steps.rb:18
And I press "Update" # features/step_definitions/web_steps.rb:22
Then I should see "Account updated!" # features/step_definitions/web_steps.rb:142
When I go to joe_runner's user edit page # features/step_definitions/web_steps.rb:18
Then I should see "You do not allowed to access to view that page" # features/step_definitions/web_steps.rb:142
Failing Scenarios:
cucumber features/authentication.feature:9 # Scenario: Signup
cucumber features/authorization.feature:7 # Scenario: Jonathan can edit his profile but not other users profiles
2 scenarios (2 failed)
15 steps (2 failed, 13 skipped)
0m0.173s
rake aborted!
Command failed with status (1): [/System/Library/Frameworks/Ruby.framework/...]
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:995:in `sh'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `call'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `sh'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `sh'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1029:in `ruby'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `ruby'
/Library/Ruby/Gems/1.8/gems/cucumber-0.6.4/lib/cucumber/rake/task.rb:68:in `run'
/Library/Ruby/Gems/1.8/gems/cucumber-0.6.4/lib/cucumber/rake/task.rb:138:in `define_task'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
activespoon:base_project jspooner$
Il y a quelques blogs qui donnent des exemples sur la façon de tester des applications facebook avec le concombre, mais ils n'ont pas aidé parce que mon erreur vient avant ces.
http://opensoul.org/2009/3/6/testing-facebook-with-cucumber
http://ryanbigg.com/2010/03/testing-facebook/
Vous pouvez également voir obtenir le code source sur GitHub http://github.com/jspooner/authlogic_cucumber_rspec_example – jspooner