Erro no integration test
21/09/2009 00:00
0
Alguem pode me ajudar, sou Iniciante em groovy on Grails

tenho:

class Author {

static constraints = {
name(numable:false, maxSize:50)
}
static hasMany = [books: Book]
String name
}

class Book{

static constraints = {
title(nullable:false, maxSize:50)
}

Author author
String title

}

no meu Controller Está assim:

def delete = {
def autorInstance = Autor.get( params.id )
if(autorInstance) {
try {
autorInstance.delete()
flash.message = "Autor ${params.id} deleted"
redirect(action:list)
}
catch(org.springframework.dao.DataIntegrityViolationException e) {
flash.message = "Autor ${params.id} could not be deleted"
redirect(action:show,id:params.id)
}
}

mas este teste falha:

void testDeleteAutorQueContenhaLivros() {
def controller = new AutorController()

def alexon = new Autor(nome:'Alexon Daniel')
alexon.addToLivros(new Livro(titulo: 'Minha Historia'))
alexon.save()
controller.params.id = alexon.id

controller.delete()

assertEquals "Espera um Livro", 1, Book.count()
assertEquals "Espera um Autor", 1, Author.count()
}

neste deste da exception no 1º assert, porque consegue apagar o Author. E o comportamento esperado é que não conseguisse apagar.
Tags: Grails


0
Idéia.

Ao invés de verificar o número de registros na base de dados, faça o seguinte: descubra o id do autor que acabou de criar e em seguida busque o registro de mesmo id na sua base de dados.

Se retornar alguma coisa, ai sim você encontrará um erro.

Isto porque do modo como você está tentando, se acidentalmente existir algum registro na base de dados, nada implica que este seja exatamente o que acabou de criar.


0
Certo, mas o problema maior é que ele apagar o author que não deveria apagar,
e depois no momento do assert ele dá HibernateConstraintViolantionException, pq o post gerar erro de constraint.
mas a forma que você falou parece mais lógico para testar.
21/09/2009 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