[rspec-users] Testing controller and action with parameters

Anderson Leite lists at ruby-forum.com
Thu Jul 29 09:37:40 EDT 2010


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?
-- 
Posted via http://www.ruby-forum.com/.


More information about the rspec-users mailing list