Un ejemplo simple de testing integration

Hola a todos, hace muy poco he descubierto la herramienta de rails de
testing integration, la verdad es que me parece muy potente, asi que he
intentado hincarle el diente y de momento parece que solo consigo una
indigestion, os explico un caso supersimple que he hecho tirando de
scaffold, por si alguien me puede ayudar.

Gracias!!

vamos a realizar un ejemplo de un testing a partir de un scaffold

rails example-test-integration

para obtener algo rapido sobre lo que trabajar tiramos de scaffold

ruby script/generate scaffold person
name :string,
email :string,
gender :boolean,
age :decimal

arrancamos el servidor, visitamos las paginas que posteriormente vamos

a testear seran las siguientes:

http://127.0.0.1:3000/people
http://127.0.0.1:3000/people/new
http://127.0.0.1:3000/people/1
http://127.0.0.1:3000/people/1/edit

manos a la obra vamos a crearnos el test de integration tirando de

generadores

ruby script/generate integration_test simple_scaffold

vemos que nos crea lo siguiente

  exists  test/integration/
  create  test/integration/simple_scaffold_test.rb

require ‘test_helper’

class SimpleScaffoldTest < ActionController::IntegrationTest
fixtures :all

Replace this with your real tests.

test “the truth” do
assert true
end
end

es importante hacer notar que si creamos el fichero a mano, por

convencion el nombre del fichero debe acabar en nombre_fichero_test.rb

y que todos los metodos de test de su interior deben comenzar con

test_…rb

ya estamos listo para comenzar a añadir metodos de test

def test_people_create_new_right_data
get “people”
assert_response :success
post_via_redirect “people/new”, :name=>“John D.”,
:email=>“[email protected]”, :gender=>true, :age=>69
assert_equal “people/:id”
end

el caso es que no esto no funciona correctamente

y ademas por cada vez que ejecuto el test encuentro una fila como esta

id # name # email # gender # age # created_at

updated_at

953125641 MyString MyString f 9.99 2009-07-09
16:11:03 2009-07-09 16:11:03

lo cual me hace pensar que no estoy escribiendo asignado los datos al

formulario

asi que voy a mirar el codigo html





y cambio el nombre de los parametros que voy pretendo rellenar en

funcion de lo anterior

def test_people_create_new_right_data_2
get “people”
assert_response :success
post_via_redirect “people/new”, :person_name=>“John D.”,
:person_email=>“[email protected]”, :person_gender=>true,
:person_age=>69
assert_equal “people/:id”
end

para correr los test

rake test:integration