Hi guys. I just wrote a small spec helper method to DRY up some of my
specs, and found that passing a URL helper (Eg: #photos_url) to a
method results in a NameError error. I extracted the problem into its
own short spec file to isolate it. Any thoughts on what’s going on?: http://gist.github.com/32060
Hi guys. I just wrote a small spec helper method to DRY up some of my specs,
and found that passing a URL helper (Eg: #photos_url) to a method results in
a NameError error. I extracted the problem into its own short spec file to
isolate it. Any thoughts on what’s going on?: http://gist.github.com/32060
foo(properties_url) is being executed in the context of the describe
block and not in the instance of an example being run. For example:
describe FooController do
it “has access to routing methods here” do
properties_url
end
it doesn’t have access out here though, this fails
Hi Zach. Thanks for that explanation; it makes a lot of sense. What
I’m trying to do is write a spec helper method for DRYing up
controller redirect examples. In other words, rather than having the
following 4 lines repeated throughout my specs:
it ‘should redirect to the account page’ do
do_action
response.should redirect_to account_url
end
I’d like to do this:
it_should_redirect_to ‘the account page’, account_url
I’ve written the method. The only problem is what you explained; #account_url being called from outside of an example.
The only solution that I can think of is to do this:
before :each do @account_url = account_url
end
it_should_redirect_to ‘the account page’, @account_url
The only solution that I can think of is to do this:
before :each do @account_url = account_url
end
it_should_redirect_to ‘the account page’, @account_url
Actually, that suggestion above of mine doesn’t work. It fails with:
You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.rewrite
(eval):17:in `account_url’
I thought of it while writing that last email, but didn’t test it
before hitting send.
-Nick
The error occurred while evaluating nil.rewrite
It’s the same as
the object instance.
Pat
Hi Pat. That’s a great suggestion. Here’s what I ended up doing: 32424’s gists · GitHub
Thanks,
Nick
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.