2010-05-03 5 views
1

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/

+0

Vous pouvez également voir obtenir le code source sur GitHub http://github.com/jspooner/authlogic_cucumber_rspec_example – jspooner

Répondre

2

J'ai eu le même problème avec ma suite de test après l'installation authlogic_facebook_connect. Je appliqué le correctif suivant pour le plug-in et il a résolu le problème:

http://gist.github.com/221893

Questions connexes