A stub replaces a method with code that returns a specified result.
let(:user) { User.create! }
controller.stub(:current_user).and_return(user)
A mock is a stub with an expectation that the method gets called.
User.should_receive(:find).with(1).and_return(user)