I have an action and I am testing it like this:
The action:
def create
@event = Evento.new(params[:event])
@event.aproved = false
if @event.save
redirect_to :action => “index”
else
render :action => “new”
end
end
The RSpec test:
before do
@event = mock_model(Event)
Event.stub!(:new).and_return(@event)
@event.stub!(:aproved=).and_return(false)
@event.stub!(:save).and_return(true)
end
it “should register some event and keep it not aproved” do
Event.should_receive(:new).once
@event.should_receive(:aproved=).once
@event.should_receive(:save).once
get “create”
response.should redirect_to :action => ‘index’
end
It seems to be working for me and the test is passing, by I think this
test is still ugly or probabily can be improved.
How do you make tests like this?