Default format for all requests in a spec

Hi guys,

Is there a way to define a default parameter for all requests made in a
spec?

I have a spec where I want all requests to be made with the “js”
format but I find it rather annoying to type a “:format => ‘js’” on
every get/post/put/delete. Is there any other way to do this?

Maurício Linhares
http://codeshooter.wordpress.com/ | http://twitter.com/mauriciojr

On Aug 26, 2010, at 8:12 AM, Maurício Linhares wrote:

Hi guys,

Is there a way to define a default parameter for all requests made in a spec?

I have a spec where I want all requests to be made with the “js”
format but I find it rather annoying to type a “:format => ‘js’” on
every get/post/put/delete. Is there any other way to do this?

Nope. I’d recommend making a feature request in rails for this:
https://rails.lighthouseapp.com/projects/8994.

Well, you could setup a default parameter hash:

describe MyController do
let(:params) { {:format => ‘js’} }

describe ‘#show’ do
it ‘…’ do
get :show, params.merge(:id => 1)
end
end
end

You could also take it another level:

describe MyController do
let(:params) { {:format => ‘js’} }

describe ‘#show’ do
before { params.merge(:id => 1) }

it '...' do
  get :show, params.merge(:another_param => 'yep')
end

end
end

On Aug 26, 9:12 am, Maurício Linhares [email protected]

Or you could override the #get/post/put/delete methods in your
ExampleGroup

describe MyController do
def get(path, params)
super(path, params.merge({:format => ‘js’})
end

it ‘…’ do
get :show, :id => 1
end
end

On 27 Aug 2010, at 08:00, Justin Ko wrote:

end
get :show, params.merge(:another_param => ‘yep’)

I have a spec where I want all requests to be made with the “js”
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

cheers,
Matt

http://blog.mattwynne.net
+44(0)7974 430184