2011-01-18 2 views
0

В RSpec я в настоящее время тестирования запросов API, используя ряд методов, которые эффективно компилировать к чему-то вроде этого:Сделать запрос на определенный путь

env = Rack::MockRequest.env_for('/api/v1/projects.json') 
Rails.application.call(env) 

мне было интересно, если есть более короткий путь создания запрос к Rails-приложению в RSpec. Я знаю, что вы можете создать спецификацию контроллера и запросить конкретные действия, но я больше могу сделать запрос на URL-адрес и проверить, что результат - это то, что я ожидаю.

ответ

1

Мне нравится использовать стойку :: Тест для этого прецедента. Пример:

require 'spec_helper' 
require 'rack/test' 

describe 'API' do 
    include Rack::Test::Methods 

    def app 
    Rails.application 
    end 

    before do 
    @password = "12345" 
    @project = Factory(:project) 
    @user  = Factory(:user, 
         :password    => @password, 
         :password_confirmation => @password, 
         :project    => @project) 

    authorize @user.email, @password 
    end 

    it "gets projects" do 
    get "/api/v1/projects.json" 

    last_response.should be_ok 
    last_response.body.should == [@project].to_json 
    last_response.content_type.should == 'application/json' 
    end 
end 
0

Метод «посещения», похоже, тоже работает, но я не знаю насчет насмешек.

Смежные вопросы