Ruby on rails 3 向特定路径发出请求
在RSpec中,我目前正在使用一系列方法测试API请求,这些方法可以有效地编译为如下内容:Ruby on rails 3 向特定路径发出请求,ruby-on-rails-3,rspec,Ruby On Rails 3,Rspec,在RSpec中,我目前正在使用一系列方法测试API请求,这些方法可以有效地编译为如下内容: env = Rack::MockRequest.env_for('/api/v1/projects.json') Rails.application.call(env) 我想知道在RSpec中是否有一种更短的方式向Rails应用程序发出请求。我知道你可以创建一个控制器规范并请求特定的操作,但我更希望找到一种方法来向URL发出请求,并检查输出是否符合我的预期。visit方法似乎也能工作,但我不知道如何模拟
env = Rack::MockRequest.env_for('/api/v1/projects.json')
Rails.application.call(env)
我想知道在RSpec中是否有一种更短的方式向Rails应用程序发出请求。我知道你可以创建一个控制器规范并请求特定的操作,但我更希望找到一种方法来向URL发出请求,并检查输出是否符合我的预期。visit方法似乎也能工作,但我不知道如何模拟。我喜欢在这个用例中使用Rack::Test。例如:
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