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