Testando controladores de plugins Grails por si só
-
14-12-2019 - |
Pergunta
Criei um plugin simples do Grails 2.0.1 com um domínio "Usuário".Criou controladores e visualizações de andaimes.Mas quando eu executo o grails run-app e vou para o URL do usuário/lista, recebo o erro
Nenhuma assinatura do método:packagename.User.list() é aplicável para tipos de argumentos:() valores:[] Soluções possíveis:list(), list(java.util.Map), is(java.lang.Object), wait(), lock(), find()
Mas quando eu uso o plugin dentro de um aplicativo Grails (sem publicar, empacotar), ele funciona bem.
A pergunta é: quero poder testar o controlador do plugin Grails sem um aplicativo.Acho que estou faltando alguma configuração.
Solução
Parece que você não tem o plugin do Hibernate instalado.É adicionado a BuildConfig.groovy
por padrão para aplicativos, mas não para plug-ins.Você pode instalá-lo com grails install-plugin hibernate 2.0.1
e irá adicioná-lo a application.properties
, e essa abordagem evita que seja uma dependência quando os usuários instalam seu plug-in.
Você também pode adicioná-lo a BuildConfig.groovy
mas não se esqueça de adicionar export = false
a menos que seu plugin realmente exija que o Hibernate funcione.Se funcionaria com qualquer implementação GORM (por exemplo,Mongo), então não deveria ser exportado:
plugins {
build(":tomcat:$grailsVersion",
":hibernate:$grailsVersion",
":release:1.0.1") {
export = false
}
}