Método get em testes de integração
03/05/2008 00:00
0
Alguém sabe se existe alguma restrição ao uso do método dinâmico get, em testes de integração?

O problema é o seguinte: tenho uma classe Category, com um atributo name. Para testá-la, escrevi um caso de testes com um único teste (sem setUp nem tearDown):

void testCategories(){
def categories = [
new Category(name:"student"),
new Category(name:"worker"),
new Category(name:"old aged"),
new Category(name:"handicapped")
]
categories*.save(flush:true)

assertEquals 4, Category.list().size()
assertNotNull Category.findByName("student")
assertEquals "student", Category.get(1)?.name
}


O teste passa nos dois primeiros asserts, indicando que os objetos foram salvos, mas quando o Category.get(1) é chamado, o teste falha.

Eu devo estar fazendo alguma besteira aqui, sem perceber. Se alguém puder me ajudar...

Obrigado.
Tags: Grails


0
Pode ser que o ID não seja "1", especialmente se você estiver usando um banco mais "duradouro" do que o hsqldb em memória.

Ah, e para criar fixtures para os testes você pode usar o dbunit-plugin:
<!-- m --><a class="postlink" href="http://grailsbrasil.com//grailsblog/?p=6">http://grailsbrasil.com//grailsblog/?p=6</a><!-- m -->

valeuz...


0
Não, o id realmente é 1.

De qualquer maneira, consegui fazer o teste funcionar com um pequeno &quot;workaround&quot; <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->. Como o método list() funciona, eu o usei para criar o método get():

Category.metaClass.'static'.get = &#123;Category.list()[it-1]&#125;
04/05/2008 00:00


0
Ficou estranho.

Category.get(1) retorna o que?

valeuz...


0
null.
04/05/2008 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