# Rails Recipe 44 -- Write Tests for Your Helpers \[Corrected\]

**URL:** <https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers-corrected/122447>\
**Category:** Rails\
**Created:** [December 7, 2007, 5:48pm UTC](https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers-corrected/122447 "2007-12-07T17:48:29Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![kevin\_cline](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/3d9bf3/32.png) [@kevin\_cline](https://www.ruby-forum.com/u/kevin_cline)\
**Post date:** [December 7, 2007, 5:48pm UTC](https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers-corrected/122447/1 "2007-12-07T17:48:29Z")

</div>

I’m having trouble getting this to work.

The recipe is simple:

def setup  
@controller = SomeController.new  
request = ActionController::TestRequest.new  
@controller.instance\_eval { @params = {}, @request = request }  
@controller.send(:initialize\_current\_url)  
end

But with Rails 1.2.3 I’m getting this error:

1. Error:  
test\_x(ApplicationHelperTest):

TypeError: can’t clone NilClass  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/  
action\_controller/base.rb:1082:in `clone' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/ action_controller/base.rb:1082:in`initialize\_current\_url’  
application\_helper\_test.rb:20:in `send' application_helper_test.rb:20:in`setup\_without\_fixtures’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/  
lib/active\_record/fixtures.rb:576:in `setup’

Any ideas?

Thanks

---

<div class="post-metadata">

**Author:** ![kevin\_cline](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/3d9bf3/32.png) [@kevin\_cline](https://www.ruby-forum.com/u/kevin_cline)\
**Post date:** [December 7, 2007, 5:59pm UTC](https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers-corrected/122447/2 "2007-12-07T17:59:02Z")

</div>

On Dec 7, 9:47 am, kevin cline [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> But with Rails 1.2.3 I’m getting this error:
> 
> 1. Error:  
> test\_x(ApplicationHelperTest):
> 
> TypeError: can’t clone NilClass  
> C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/  
> action\_controller/base.rb:1082:in `clone' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/ action_controller/base.rb:1082:in `initialize\_current\_url’

I think that’s changed to since the original Recipes book was  
published, and it’s now:

@controller.instance\_variable\_set(:@url,  
(ActionController::UrlRewriter.new @request, {}))

A setup that works for me is:

def setup  
super

@request = ActionController::TestRequest.new  
@controller = StubController.new  
@controller.request = @request

@controller.instance\_variable\_set(:@url,  
(ActionController::UrlRewriter.new @request, {}))

ActionView::Helpers::AssetTagHelper::reset\_javascript\_include\_default  
end

Cheers,

Mike
