On Aug 3, 2011, at 3:50 AM, ct9a wrote:
> also, i have just read a little more in the rspec book.
>
> here's an extract:
>
> ------------- extract start ---------------------
> assign()
> View specs expose an assign method, which we use to provide data to
> the view. Modify the spec as follows:
>
> describe "messages/show.html.erb" do
> it "displays the text attribute of the message" do
> assign(:message, double("Message", :text => "Hello world!"))
> render
> rendered.should contain("Hello world!")
> end
> end
>
>
> The new first line of the example creates a test double, which stubs
> the text( ) method with a return value of “Hello world!” and assigns
> it to an @message instance variable on the view.
>
> ------------- extract end ---------------------
>
> If :message (in the view spec) can correspond to @message variable (in
> the actual show.html.erb view), is this a Rspec convention/thing?
>
> Sorry, Im just trying to find more resources to read up on rspec but
> i'm having not much luck. Appreciate your thoughts.
>
> Thank you .
Keep in mind that rspec-rails is a thin wrapper around the built-in Rails
testing framework. The convention of relating a symbol in the spec to an
instance variable in the view was established by Rails with the `assigns`
method in functional tests (controller specs in rspec):
thing = Factory(:thing)
get :index
assigns(:thing).should eq(thing)
In the last line, `assigns(:thing)` refers to the `@thing` instance variable in
the view.
HTH,
David
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users