[rspec-users] view_context in specs

David Chelimsky dchelimsky at gmail.com
Wed Nov 2 22:52:30 EDT 2011


On Nov 2, 2011, at 9:46 PM, Patrick J. Collins wrote:

> I have a presenter class which is instantiated like this:
> 
> class Blah
> 
>  def initialize(context)
>    @context = context
>  end
> 
>  def do_something_view_related
>    @context.render :partial => "/...somewhere"
>  end
> 
>  def do_something_else_view_related
>    @context.content_tag :p, "fancy paragraph"
>  end
> 
> end
> 
> class BlahController < ApplicationController
> 
>  def blah
>    @blah = Blah.new(view_context)
>  end
> 
> end
> 
> ...
> 
> I've gotten around this in my specs by doing something like:
> 
> describe Blah do
> 
>  it "is blaherrific" do
>    context = stub(:render => "some content...", :link_to => "<a
> href="www.somewhere.com">somewhere</a>)
>    blah = Blah.new(context)
> 
>    blah.do_someting_view_related.should == "some content..."
>  end
> 
> end
> 
> But I would much rather actually be able to call upon the real view context in
> my specs so that my tests are more realistic.
> 
> Is the best way to get a real-world view context in there to do something like:
> 
> Blah.new(ActionView::Base.new) ?
> 
> Or does RSpec have something magical already setup for this sort of thing?

Nope. rspec-rails doesn't know that you want to write presenters :)

I'd say just go w/ the real deal.

HTH,
David


More information about the rspec-users mailing list