2012-02-22 7 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에 a : cucumber_port => 4321을 지정할 수 있지만이 API에서는 내 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

확인에 당신의 API에 액세스 할 수 있습니다. 부팅. Rack :: Test를 사용하지는 않지만 이제는 내 단계 정의에서 API에 연결할 수 있습니다. 또한 Capybara.server_port = 9887로 포트를 수정할 수 있습니다. – Ginkgochris