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, " handling GET /messages for a user" do
<div><div><br></div>before do<br> @user = mock_model(User) <br> @messages = mock("messages")<br> @user.stub!(:messages).and_return(@messages)<br> User.stub!(:find).and_return(@user)<br> end<br><br> def do_get
<br> get :index, :user_id => 1<br> end<br><br> it "should render index template" do<br> do_get<br> response.should render_template('index')<br> end<br><br> it "should find user with params[:user_id]" do
<br> User.should_receive(:find).with(1).and_return(@user)<br> do_get<br> end<br><br>it "should get user's messages" do<br> @user.should_receive(:messages).and_return(@messages)<br> do_get<br>end<br><br>
it "should assign the found messages for the view" do<br> do_get<br> assigns[:messages].should be(@messages)<br> end<br>end<br></div><br><br>Hope that helps you out.<br>