[英]Testing strategies for Ruby on Rails & Twitter OAuth
我正在開發一個利用twitter oauth的應用程序,並試圖找出如何測試twitter oauth的磚牆。 特別是嘗試使用Cucumber和Webrat / Selenium來測試功能 - 如果用戶已經提供了對應用程序的oauth訪問權限,則注冊/登錄過程中的某些步驟會有不同的行為。
有沒有人在他們的Ruby on Rails Cucumber功能(或任何其他測試框架)中有任何成功模擬或存儲部分或所有Twitter OAuth系統的成功? 任何幫助,將不勝感激。
這是OP以來的一年多,但我最近發現這篇關於使用TwitterAuth和Cucumber的文章對我有用。
http://blog.zerosum.org/2009/7/13/twitter-auth-integration-testing
我在我的測試用例中使用了mocking。 我手動測試,弄清楚響應應該是什么,並覆蓋ruby oAuth gem。 以下是成功推文的一個測試用例(使用Shoulda):
context 'cork/tweet' do
setup do
response = Net::HTTPResponse.new("1.1", 200, "")
Net::HTTPResponse.any_instance.stubs(:body).returns JSON_RESPONSE
OAuth::AccessToken.any_instance.stubs(:post).returns(response)
post :create, :cork_id => @cork.id, :message=>MESSAGE
end
should_respond_with :redirect
should_change('Tweet.count' , :by => 1) {Tweet.count}
.. and so on
JSON_RESPONSE是我從手動測試中收集到的答案 - 我將一個printf放在lib / oauth / tokens / access_token.rb中:44:在`post'中捕獲響應。
否則,這幾乎是不可能測試的,如你所指出的那樣,b / c,Twitter無法從API取消對您的應用程序的授權,如果您已經授權該應用程序,則行為也不同。
我沒有確切的twitter方法(直到現在還沒有這么做),但考慮到OAuth有一個描述不同可能流程的規范,我會嘗試為手頭的情況枚舉每個,並嘗試自動化相互作用。
為了指導您,以下是相關信息的一些指示:
通常,基於Web的流程是不同的(如您所見)用戶是否未授予客戶端應用程序的權限:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.