Problemas no teste de integração Grails 1.2.1
23/02/2010 00:00
0
Senhores tenho a seguinte classe do domínio:

class Todo {

String name
String note
Date createDate
Date dueDate
Date completeDate
String priority
String status
User owner
Categori category

static belongsTo = [User, Categori]

static constraints = {
name(blank: false)
createDate()
priority()
status()
note(maxSize: 1000, nullable: true)
completeDate(nullable: true)
dueDate(nullable: true)
}

String toString() {
name
}

}

Criei o teste de integração para a mesma de acordo com o exemplo de um livro e o teste é o seguinte:

import grails.test.*

class TodoTests extends GrailsUnitTestCase {
protected void setUp() {
super.setUp()
Todo.list()*.delete()
}

protected void tearDown() {
super.tearDown()
}

void testSomething() {

new Todo(name: "1", createdDate:new Date(), priority: "", status:"").save(flush: true)
new Todo(name: "2", createdDate:new Date(), priority: "", status:"").save(flush: true)
new Todo(name: "3", createdDate:new Date(), priority: "", status:"").save(flush: true)
new Todo(name: "4", createdDate:new Date(), priority: "", status:"").save(flush: true)
new Todo(name: "5", createdDate:new Date(), priority: "", status:"").save(flush: true)

assert 5 == Todo.count()
def actualTodo = Todo.findByName('1')
assert actualTodo
assert '1' == actualTodo.name
}

}

Mas o teste sempre falha, como se os objetos não estivessem sendo persistidos no banco, alguém pode me dar uma força?
Tags: Grails


0
oi caiohc,

tem algumas coisas que você deve verificar:

no seu environment test, como está configurada a propriedade dbCreate? Para que seu teste seja válido, deveria ser create-drop, porque caso contrário na segunda execução do seu teste de integração haveriam mais do que 5 registros.


0
Verifiquei que o teste funciona se antes eu salvar os domínios aos quais este está relacionado.
23/02/2010 00:00


0
caiohc,

outra coisa para testar: verifique se os registros não possuem algum erro de validação chamando a propriedade errors de suas classes. Se for diferente de null, é sinal de que algo não está batendo.

Como mencionou, se você persiste antes o usuário ou categoria relacionado à sua classe de domínio, o seu teste passa sem problemas. No entanto, olhando seu código fonte fica nítido que você não setou as propriedades usuario e categoria da classe Todo.

Será que não seria isto?



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