views:

20

answers:

0

Hi,

Following is a test case in RailsTutorial. Generally I understand the syntax, But in this case, they define the @invalid_attr variable, but they dont seem to be using it. Infact in this line @user.should_receive(:update_attributes).and_return(false), I think @user would have all the values from the factory, rather than @invalid_attr but it will return false. Is it not?

  describe "PUT 'update'" do
    before(:each) do
      @user = Factory(:user)
      test_sign_in(@user)
      User.should_receive(:find).with(@user).and_return(@user)
    end

describe 'failure' do
  before(:each) do
    @invalid_attr = { :email => "", :name => "" }
    @user.should_receive(:update_attributes).and_return(false)
  end

  it "should render the 'edit' page" do
    put :update, :id => @user, :user = {}
    response.should render_template 'edit'
  end

  it "should have the right title" do
    put :update, :id => @user, :user ={}
    response.should have_tag('title',/edit user/i)
  end
end

Thanks :)