La Coctelera

por Guillermo Álvarez

image

Cucumber: Testeando ajax sin selenium (II)

Continuando con el artículo Testeando ajax sin selenium han mejorado algunas cosillas.

La versión anterio, tenía un problema y es que solo servía para visitar. ¿Pero que pasa con el resto de steps (como I press), que implican peticiones y que esperan ajax como respuesta? Pues aquí está la solución.

When /^(.*) as an ajax request/ do |task|
   When task
   response.body = get_ajax_html(response.body)
 end
 

Esto dota a las features de poder realizar cualquier acción que antes hacías y evaluar su respuesta. Por lo tanto, lo que antes era:

    And I press "Guardar"
 

Ahora es

    And I press "Guardar" as an ajax request
 

Como extensión, he visto que otras formas de page.update, usan la función javascript html en vez de replace with, por lo que la función que obtiene el cuerpo ha sido actualizada.

def get_replace_with_body(body)
   body=~/replaceWith\(\"(.*?)[^\\]\"\)/m
   body=~/\)\.html\(\"(.*?)[^\\]\"\)/m unless $1
   raise Exception.new('The ajax response doesn\'t containg a js replaceWith method') unless $1
   "#{$1}"
 end
 

Y ahora ya puedo testear casi todo el js sin usar selinium, configurar una máquina virtual, un xen, linux, firefox, selenium_server, etc...

23, ene | sin comentarios Posteado por: cientifico compártelo Tags: page update, muerte selenium, me voy, servidor, feature, ruby, page, update, js, ajax, webrat, rails, cucumber, infierno, satanas

Escribe un comentario