Erro nos testes depois de atualizar o Grails
16/01/2011 00:00
0
Pessoal, atualizei meu ambiente para as últimas versões do groovy, grails e até o STS e depois quando fui executar meus testes, os de integração começaram a falhar, segue um exemplo de falha:

no service:

def meuMetodo = { parametro1, parametro2 ->

MinhaEntidade.withTransaction { status ->
MinhaEntidade minhaEntidade = MinhaEntidade.findByParametro1(parametro1)
if(minhaEntidade){
minhaEntidade.setVariavelBooleana(false)
minhaEntidade.save()
} else {
String message = "Minha entidade nao encontrada: $parametro1 - $parametro2"
log.debug message
throw new IllegalArgumentException(message)
}
}
}


No teste eu executo:

// mock da entidade, de log e withTransaction

meuServiceService.meuMetodo "teste@teste.com", null

// meus asserts


o erro:

No signature of method: com.minhaapp.portal.services.MeuService.meuMetodo() is applicable for argument types: (java.lang.String, null) values: [teste@teste.com, null] Possible solutions: getMeuMetodo()
groovy.lang.MissingMethodException: No signature of method: com.minhaapp.portal.services.MeuService.meuMetodo() is applicable for argument types: (java.lang.String, null) values: [teste@teste.com, null]
Possible solutions: getMeuMetodo()
at GrailsMelodyGrailsPlugin$_closure5_closure18_closure19.doCall(GrailsMelodyGrailsPlugin.groovy:144)
at com.rangofacil.portal.services.MeuServiceTests.testMeuMetodo(MeuServiceTests.groovy:66)


Isso está acontecendo em todas as chamadas a um service, até mesmo nos testes dos meus controllers quando chamam um service.
Tags: Grails


0
Oi.

faça o seguinte: reescreva os seus métodos para que, ao invés de terem uma assinatura como


def meuMetodo = { parametro1, parametro2 ->


seja algo como


def meuMetodo(parametro1, parametro2)


A propósito, o problema são nos testes unitários ou de integração?


0
Opa,

Os testes e a app estavam rodando blznha antes de fazer a atualização para o 1.3.6, outra coisa que parou de funcionar depois que atualizei é o log durante os testes, mas isso vou ver melhor depois.

Tinha resolvido alterando a assinatura para um método comum, como:
public String meuMetodo(String param)


Acabei de testar como comentou:
def meuMetodo(parametro1, parametro2)


e funcionou!!!!

Vlw kicolobo!!!

Abraço
19/01/2011 00:00



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