3

RESTfullJSONサービスの受け入れテストを書いています。本番サーバーに対してテストを実行できるようにしたい。このAPIはiphoneクライアントによって使用されます。認証には、JSONサービスはDevise認証トークンモジュールを使用します。

簡単に言うと、プロトコルは次のとおりです。

iphone:POST / api / v1 / tokens with params email = user@serivce.com&pass=secretpass server:return 200 and the following JSON {"token": "UYUKJHBKHJJHSAD"} iphone:GET / api / v1 / messages?auth_token = UYUKJHBKHJJHSAD

すべてがうまく機能します。

これをキュウリでテストする最良の方法は何ですか?

https://github.com/jayzes/cucumber-api-stepsのapi_stepsを使用していて、何かを一緒にハッキングして、すべてのGETリクエストでauth_tokenが渡されるようにしましたが、これは少しハックです。

私がしたことは、次のステップを作成することです。

そして、パスワード「bingobingo」でユーザー「admin@myservice.com」として認証します

その中で、グローバル変数auth_tokenを設定し、それをすべてのGETリクエストに追加します。ぶさいくな!

きゅうり/Rails/ Test gurusをお願いします!これを行うための最良の方法は何ですか?

4

1 に答える 1

1

RSpecはCucumberよりも使いやすいことがわかりました。

# spec/api/messages_spec.rb
describe "messages", :type => :api do
  it "retrieves messages" do
    get "/api/v1/messages", :token => user.authentication_token
    @messages = user.messages # this is the expected result
    last_response.body.should eql @messages.to_json
    last_response.status.should eql 200
  end
end

# spec/support/api/helper.rb, so we have access to get, post, put, delete methods
module ApiHelper
  include Rack::Test::Methods
  def app
    Rails.application
  end
end
RSpec.configure do |c|
  c.include ApiHelper, :type => :api
end
于 2012-01-11T05:26:23.297 に答える