On 2008-12-04, at 17:06, Zach Dennis wrote:
On Thu, Dec 4, 2008 at 3:41 PM, Nick Hoffman <[EMAIL PROTECTED]> wrote:
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
  properties_url

  # your example will fail to
 foo(properties_url)
end
--
Zach Dennis

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

Are there any alternative solutions? Cheers,
Nick
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to