Pregunta

He tenido problemas con la comprobación de autorización de mi aplicación Grails. Parece ser que el navegador no acepta las cookies, así que creé una aplicación Grails simple como una prueba.

<html>
<head>
    <title>Welcome to Grails</title>
</head>
<body>
    <g:each in="${request.cookies}">
       <h1>${it.name} = <span class="value">${it.value}</span></h1>
    </g:each>

    <span class="value">test test</span>
</body>

y mi prueba de Geb:

import spock.lang.Stepwise;
import geb.Page;
import geb.spock.GebReportingSpec


@Stepwise
class LoginSmokeTests extends GebReportingSpec {
 String getBaseUrl() {
  return "http://localhost:8080/test123/"
 } 

 def "testing stuff"() {
  given:
   to HomePage
  when:
   println header

  then: 
   at HomePage
 }  
}



class HomePage extends Page {
 static at = { title == "Welcome to Grails" }

 static content = {
  header { $("span.value").first().text() }
 }
}

Cuando veo esto a través del navegador, se imprimen los valores de 2 galletas. Cuando se accede a él a través de mi prueba Geb, el código HTML <span class="value">test test</span> es recogido - ya que no existen las cookies en la solicitud para repetir.

He hecho algunas búsquedas sobre el uso de Geb + cookies, pero ya que es relativamente nuevo software, no parece ser demasiada información por ahí (aunque su manual es grande).

  

Se crea una nueva instancia del navegador para cada método de prueba Sin embargo, ya que el comportamiento por defecto es volver a utilizar el controlador predeterminado a través de las instancias del navegador las cookies del conductor se borran en el método de limpieza de Spock (). Sin embargo, si su especificación es paso a paso (es decir, está anotado con @ spock.lang.Stepwise - ver documentos Spock para más detalles) las galletas no se borran en la limpieza (), pero se borran en cleanupSpec () lo que significa que el estado del navegador no se restablece entre la prueba métodos (que tiene sentido para una especificación de paso a paso).

Y, sólo estoy ejecutando un método de prueba - pero no se envían las cookies. Algunas ideas?

¿Fue útil?

Solución

Debido a que esta es su primera solicitud, el navegador no tiene ningún galletas porque el servidor no ha enviado ninguna.

Si usted hace una solicitud posterior debería ver las cookies.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top