我想寫一個黃瓜場景,需要我有一個登錄用戶 - 這通常會很簡單,但我只使用OpenID身份驗證(身份驗證插件)。然而,在深入挖掘open_id_authentication插件之後,我不確定我如何在Cucumber中實現這一點。如何僞裝OpenID登錄RSpec用戶故事/黃瓜時使用open_id_authentication插件
6
A
回答
4
,我想出了一個辦法,如果你把這個在你的功能/支持/ env.rb:
ActionController::Base.class_eval do
private
def begin_open_id_authentication(identity_url, options = {})
yield OpenIdAuthentication::Result.new(:successful), identity_url, nil
end
end
然後,你可以做這樣的事情在你的相應步驟:
Given /^I am logged in as "(.*)"$/ do |name|
user = User.find_by_name(user)
post '/session', :openid_url => user.identity_url
# Some assertions just to make sure our hack in env.rb is still working
response.should redirect_to('/')
flash[:notice].should eql('Logged in successfully')
end
我只是完全打開了黃瓜功能的開放id auth,顯然如果我需要那些登錄失敗的實例,我可以根據提供的identity_url來做到這一點。
0
DEfusion的答覆工作,只是我需要正常化像identity_url:
ActionController::Base.class_eval do
private
def begin_open_id_authentication(identity_url, options = {})
yield OpenIdAuthentication::Result.new(:successful), self.normalize_identifier(identity_url), nil
end
end
感謝
2
Bort,一個軌道骨架的應用程序,擁有全套的RSpec的測試和支持OpenID登錄,所以你可能想看看他們做什麼。
2
如果你希望能夠存根出反應做到這一點:
在功能/支持/ helpers.rb:
ActionController::Base.class_eval do
private
def fake_openid_response(identity_url)
[OpenIdAuthentication::Result.new(:successful), identity_url, nil]
end
def begin_open_id_authentication(identity_url, options = {})
yield fake_openid_response(identity_url)
end
end
通過移動了一個單獨的方法,你現在可以存根響應必要時在你的步驟中做出迴應。例如,如果我想要a:缺少響應,並且我有一個控制器GoogleLoginController,則可以使用Mocha執行以下操作:
GoogleLoginController.any_instance.stubs(:fake_openid_response)
.returns([OpenIdAuthentication::Result.new(:missing), identity_url, nil])
相關問題
- 1. rspec用戶故事功能與黃瓜
- 2. 使用紅寶石/黃瓜登錄
- 3. 黃瓜與RSpec
- 4. 黃瓜和Rspec
- 5. 我可以在使用openID時登錄用戶登錄
- 6. 測試設計用黃瓜登錄
- 7. 作爲其他用戶登錄(僞裝)
- 8. Eclipse黃瓜插件
- 9. 如何使用黃瓜在rails中測試OpenID
- 10. 如何用黃瓜
- 11. 如何用黃瓜
- 12. 用黃瓜僞造http響應
- 13. 如何運行黃瓜和RSPEC?
- 14. 當用戶登錄站點使用openid時,stackoverflow如何獲取用戶信息
- 15. 如何從rspec和黃瓜開始使用舊的RoR項目?
- 16. Ruby on Rails的:如何驗證使用Rspec的或黃瓜
- 17. 用戶登錄而使用RSpec和authlogic
- 18. 什麼是RSpec的黃瓜
- 19. RSpec的黃瓜和Rails
- 20. 黃瓜,Rspec的:在輸出
- 21. SimpleCov rspec和黃瓜分別
- 22. 黃瓜/ RSpec的測試
- 23. RSpec和黃瓜在RoR野
- 24. Ruby open_id_authentication with Google OpenID
- 25. 使用rspec和黃瓜時放置VCR配置的位置
- 26. 如何使用OpenID來同時登錄多個Google帳戶的用戶?
- 27. 如何使用facebook登錄openid?
- 28. 如何使用OpenID自動登錄用戶?
- 29. Facebook使用Authlogic進行黃瓜測試 - 測試用戶如何以Facebook用戶身份登錄?
- 30. 可以黃瓜和rspec使用相同的blueprints.rb文件