Testar redirect
18/05/2013 18:30
0
Como testar o uso do redirect nos controllers?
Antes eu podia verificar controller.redirectArgs.action e .controller, agora essa propriedade não existe mais (Grails 2.2.2 aqui). A forma recomendada seria:
controller.response.redirectedUrl, que retornaria algo como "/foo/bar/1"

O problema é que esta propriedade é sensivel a mapeamentos de url, então isso:
redirect controller: 'foo', action: 'bar', id: 1

Poderia retornar, dependendo do url mapping:
controller.response.redirectedUrl == "/xpto/1"

Testes do controller não deveriam ser afetados pelo url mapping, já que qualquer mudança no mapeamento pode quebrar os testes
Tags: controller redirect test


0
Alterei meu UrlMappings para não executar nada quando em ambiente de testes, e parece ter dado certo.
Ficou assim:
import grails.util.Environment

class UrlMappings {

static mappings = {
if (Environment.current == Environment.TEST)
return

<Defino os mapeamentos normalmente à partir daqui>
}
}


E então controller.response.redirectedUrl sempre vai usar o padrão /controller/action/id já que não há nenhum mapeamento explicitamente definido


0
Infelizmente a minha "solução" quebra os testes funcionais, então voltei à estaca zero.
Alguma sugestão?




Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto