如果您已成功測試發佈,放置和刪除受到doorkeeper OAuth2提供程序gem保護的Rails API的http方法,請分享,我會給你愛。rspec在rails api上測試紅寶石保護與門衛
doorkeeper wiki documentation和sample application很好地展示瞭如何測試get方法。我成功地測試了一個類似於使用Capybara測試驅動程序和Cucumber的文章。無法測試從put或delete路由的任何API。無法使用rspec測試進行發佈。
@user = create :user
@client = create(:oauth_application)
@token = create(:oauth_token, :application => @client, :resource_owner_id => @user)
json_for_new_entry = {
date_attr: Time.now.to_date,
decimal_attr: '1.1',
string_attr: 'oath2, you make me blue',
bool_attr: false,
int_attr: 1
}.to_json
page.driver.header 'Authorization', "Bearer #{@token.token}"
page.driver.post api_entry_path, json_for_new_entry,
'CONTENT_TYPE' => 'application/json'
的工廠都沒有什麼特別的:
factory :user, :class => User do |user|
sequence :email do |n| "user#{n}@example.com" end
pwd = "password"
password pwd
end
factory :oauth_application, :class => Doorkeeper::Application do
sequence(:name) { |n| "application_name_#{n}" }
#redirect_uri 'urn:ietf:wg:oauth:2.0:oob'
redirect_uri 'http://localhost:3000/'
end
factory :oauth_token, :class => Doorkeeper::AccessToken do
association :application, :factory => :oauth_application
association :resource_owner_id, :factory => :user
end
我的環境是有點落後了最新版本:
- 在3.1.12
- 水豚2.2.0 軌寶石
- 黃瓜1.3.10
- 設計2.2.7
- 區長1.2.3
- 看門0.7.4
- rspec的核2.14.5
- rspec的-期望2.14.3
- rspec的-嘲笑2.14.3
- rspec的-rails 2.14.0
謝謝。它會起作用,但我並不是瘋狂地在生產代碼中加入特殊情況來測試它。我希望得到的答案將是獨立於應用程序的測試代碼。 Upvote,因爲它會解決問題並進行測試。謝謝你的答案。 –