Here is the correct spec for  this index action:<br><br> def index<br>  if params[:user_id]<br>    @user = User.find(params[:user_id])<br>    @messages = @user.messages<br>  end<br> end<br><br>describe MessagesController, &quot; handling GET /messages for a user&quot; do
<div><div><br></div>before do<br>&nbsp;&nbsp; @user = mock_model(User)&nbsp;<br>&nbsp;&nbsp; @messages = mock(&quot;messages&quot;)<br>&nbsp;&nbsp;&nbsp;@user.stub!(:messages).and_return(@messages)<br>&nbsp;&nbsp; User.stub!(:find).and_return(@user)<br> end<br><br> def do_get
<br>&nbsp;&nbsp; get :index, :user_id =&gt; 1<br> end<br><br> it &quot;should render index template&quot; do<br>&nbsp;&nbsp; do_get<br>&nbsp;&nbsp; response.should render_template(&#39;index&#39;)<br> end<br><br> it &quot;should find user with params[:user_id]&quot; do
<br>&nbsp;&nbsp; User.should_receive(:find).with(1).and_return(@user)<br>&nbsp;&nbsp; do_get<br> end<br><br>it &quot;should get user&#39;s messages&quot; do<br>&nbsp;&nbsp;&nbsp;@user.should_receive(:messages).and_return(@messages)<br>&nbsp;&nbsp;&nbsp;do_get<br>end<br><br>
 it &quot;should assign the found messages for the view&quot; do<br>&nbsp;&nbsp; do_get<br>&nbsp;&nbsp; assigns[:messages].should be(@messages)<br> end<br>end<br></div><br><br>Hope that helps you out.<br>