Testes de subclasses em grails
12/11/2008 00:00
0
Nao estou conseguindo realizar testes com sucesso,
queria conselhos para a realizacao de testes com classes herdadas
- (como deve ser a criacao de um objeto dessa classe?)


Tenho essa superclasse como domain, ( nao passa no testPersist )

class Publication {
String title
int year
String homePage
String meansOfDissemination
boolean moreRelavance
String translates
String otherInformation
}


com esse teste:

class PublicationTests extends GroovyTestCase {

// DA OK
void testSomething() {
assert 1==1
}

void setUp() {
Publication.list()*.delete()
}
//falha
void testPersist(){
new Publication(title:"title 1",year :"year 1",
homePage:"homePage 1",meansOfDissemination:"meansOfDissemination 1",
moreRelavance:true,translates:"translates 1",
otherInformation:"otherInformation 1", externalAuthors: [""],
project: new Project() ).save()

assert 1 == Publication.count()
}


e essa subclasse:

class Article extends Publication {
String DOI
String language
String ISSN
String titleOfMagazinePublished
int volume
int initialPage
int finalPage
}

com esse teste: , ( nao passa no testPersist )

class ArticleTests extends GroovyTestCase {
// DA OK
void testSomething() {
assert 1==1
}

/**
* Using setUp to Initialize Data, test data is created
*/
void setUp() {
Article.list()*.delete()
} // setUp
//falha
void testPersist(){
new Article(DOI:"DOI 1",language:"portuguese",
ISSN:"ISSN 1",volume:1,
initialPage:1, finalPage:10,
titleOfMagazinePublished:"MagazinePublished 1").save()

new Article(DOI:"DOI 2",language:"english",
ISSN:"ISSN 2",volume:2,
initialPage:2, finalPage:10,
titleOfMagazinePublished:"MagazinePublished 2").save()

new Article(DOI:"DOI 3",language:"spanish",
ISSN:"ISSN 3",volume:3,
initialPage:3, finalPage:10,
titleOfMagazinePublished:"MagazinePublished 3").save()


assertEquals 3, Article.list().size()
}
Tags: Grails


0
Esses testes são de integração, certo? Se sim, o problema é que quando vc faz as asserções, o grails ainda não fez o flush da sessão e por isso os dados ainda não foram realmente salvos. Altere a chamada de "save" para "save(flush:true)" - o que indica para o grails que ele deve fazer o flush imediatamente.

valeuz...



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