# Rails Recipe 44 -- Write Tests for Your Helpers

**URL:** <https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers/122441>\
**Category:** Rails\
**Created:** [December 7, 2007, 5:12pm UTC](https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers/122441 "2007-12-07T17:12:02Z")\
**Posts on this page:** 4\
**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:12pm UTC](https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers/122441/1 "2007-12-07T17:12:02Z")

</div>

I’m having trouble getting this to work.

The recipe is simple:

def setup  
@controll = 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:38pm UTC](https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers/122441/2 "2007-12-07T17:38:46Z")

</div>

kevin cline wrote:

> I’m having trouble getting this to work.
> 
> The recipe is simple:
> 
> def setup  
> @controll = 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):

your controller instance variable is named: “@controll” but then you are  
using another variable by the name of “@controller” (which happens to  
be nil in this case

ilan

---

<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:47pm UTC](https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers/122441/3 "2007-12-07T17:47:18Z")

</div>

On Dec 7, 10:38 am, Ilan B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > end
> 
> > But with Rails 1.2.3 I’m getting this error:
> 
> > 1. Error:  
> > test\_x(ApplicationHelperTest):
> 
> your controller instance variable is named: “@controll” but then you are  
> using another variable by the name of “@controller” (which happens to  
> be nil in this case

Thanks. Unfortunately, that error is only in the post, and not in the  
code.

---

<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, 6:12pm UTC](https://www.ruby-forum.com/t/rails-recipe-44-write-tests-for-your-helpers/122441/4 "2007-12-07T18:12:30Z")

</div>

On 7 Dec 2007, at 16:11, kevin cline wrote:

> end

This looks out of date - looking at the source it would seem like the  
name of the magic instance variables are now @\_params and @\_request  
(better yet use the accessors)

Fred
