ConfigurationHolder.config dentro de um servico em um Teste de Integracao fica null
16/08/2012 18:37
0
Pessoal,

criei um teste de integracao para testar uma classe de servico, e
nos métodos da classe de servico tenho uma chamada assim:


def config = ConfigurationHolder.config


e o config fica null, alguem sabe como eu posso montar um mock do CondigurationHolder
e injeta-lo na no servico , no setup() da classe de teste?

Obrigado,

Evandro Kumasaka
Tags: CondigurationHolder IntegrationTest


0
um codigo de exemplo para explicar melhor

O arquivo Config.groovy

contas {
contaA {
carteira="175"
}
}


A classe de servico:

class ContaService {

def pegaConfig(String conta){
def config = ConfigurationHolder.config.contas[conta]
return config
}
}


A classe de teste

class ContaServiceTests extends GroovyTestCase {
def contaService

protected void setUp(){
contaService = new ContaService()
}

void testPegaConfig(){
def config = contaService.pegaConfig('contaA')

//assert...
}

}


O config no metodo de teste fica nulo, pois eu precisaria passar um mock
e nao sei como fazer isso.

Obrigado,

Evandro
16/08/2012 18:55


0
Eu acho que ele não ta injetando o ConfigurationHolder, o que é estranho, pois o teste é de integração e deveria

Não vira tentar mockar essa classe?

http://mrhaki.blogspot.com.br/2009/12/grails-goodness-mocking-configuration.html
17/08/2012 14:51


0
Tem um detalhe que nao havia falado, o projeto é um plugin, será que é por isso que
não esta injetando?
Inicialmente na criação do projeto o Config.groovy nao foi nem criado, dai eu criei
manualmente, para poder montar os testes.
O objetivo é que a aplicação que for usar o plugin implemente as configurações no seu proprio arquivo Config.groovy.
Mas eu precisaria testar esta funcionalidade no plugin.
17/08/2012 16:19


0
Provavelmente é por que o projeto é um plugin...

O unico jeito que consegui pensar é tentar rodar esse teste de integração na aplicação que for utilizar o plugin =/
17/08/2012 17:43


0
Criei uma nova aplicacao Grails para testar e acontece a mesma coisa do plugin, achei um link
falando sobre o problema:

http://grails.1312388.n4.nabble.com/Spock-integration-tests-have-null-ConfigurationHolder-values-td3411953.html

mas pensando bem, o correto mesmo no teste de integracao seria usar um mock, tentei repetir o
exemplo do link que voce passou e funciona para Unit mas nao para Integration.

17/08/2012 18:34


1
Consegui uma maneira usar um mock do ConfigurationHolder


...
protected void setUp(){
super.setUp()
ConfigurationHolder.config = [contas:[contaA:[carteira:'175']]
}


agora acho que fechou!

17/08/2012 19:36


0
Boa =)

espero conseguir ajudar mais na proxima hehe
17/08/2012 19:53



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