2012-02-22 8 views
0

のレールを使って手動でAPIをテストすることができます。とHTTPクライアントをhttp://127.0.0.1:3000/apiに指定します。Cucumber + Guard + Sporkによる統合テスト:RESTエントリポイントにアクセスできますか?

ここで、機能を使用してAPIを自動的にテストしたいと思います。そこで、キュウリとrspecを起動するガードサーバーを正常にセットアップしました。

キュウリは自分のアプリケーションを起動して、どのポートでも自分のAPIエントリポイントを提供していますか?そのため、ステップ定義内でHTTPクライアントを使用して、たとえばhttp://127.0.0.1:8989/apiにポイントすることができますか?

私はGuardFileにcucumber_port => 4321を指定できますが、私のAPIはこのポートでは使用できないことを知りました。

答えて

1

いいえ、キュウリはサーバーでアプリケーションを起動しません。

  1. 使用rack_testを:

    は、あなたが次の操作を行うことができ、それをテストします。 #get#postなどの方法を提供します。たとえば:
get('api/test') 
response.code.should == '200' 
    はカピバラをごサーバを起動
  1. 。しかしそれはずっと長くなるでしょう。あなたはenv.rbに次のコードを追加することでこれを行うことができます。この行は、溶液カピバラ:: Server.new(Capybara.app)だった
require 'capybara/rails' 
Capybara::Server.new(Capybara.app).boot 

は今、あなたはhttp://127.0.0.1:9887/api

+0

OKであなたのAPIにアクセスすることができます。ブート。私はRack :: Testを使用しませんが、ステップ定義でAPIに到達できます。また、私はCapybara.server_port = 9887でポートを修正できます – Ginkgochris

関連する問題