Digamos que tiene una acción de controlador para crear, de la siguiente manera:
def create
@post = Post.new(params[:post])
respond_to do |format|
if @post.save
format.html { redirect_to(@post, :notice => 'Post was successfully created.') }
format.xml { render :xml => @post, :status => :created, :location => @post }
else
format.html { render :action => "new" }
format.xml { render :xml => @post.errors, :status => :unprocessable_entity }
end
end
end
Y aquí es 'mensajes # nueva' la norma de andamios vista
<h1>New post</h1>
<% form_for(@post) do |f| %>
<%= f.error_messages %>
...... # just to show, it's bigger....
Ahora, si se crea con éxito una publicación, quiere que la redireccionen, pero si falla, solo queremos volver a procesar la acción NUEVA. La siguiente prueba usa lo que nuestro principal DJTripleThreat dijo que usara assert_template
.
test "should not create post and instead render new" do
post :create, :post => { }
assert_template :new
#added to doubly verify
assert_tag :tag => "h1", :child => /New post/
end
Si aún no flota su barco, yo incluso añadir un assert_tag para asegurarse de que algunas de las vistas se acerca, para que sepa que está representada/prestado al usuario final.
Espero que esto ayude.
Esto prueba que el método de la acción fue llamado. Una acción puede representar cualquier vista que elija o incluso redirigir. – jwadsack