Problemas com os testes de unidades dos controllers
02/08/2012 14:56
0
Estou tentando testar a funcionalidade dos métodos principais(save(), delete(), etc.) dos meus controllers com o teste feito automaticamnte pelo grails que segue logo abaixo:


package br.edu.ifal.sge

import grails.test.mixin.Mock
import grails.test.mixin.TestFor
import br.edu.ifal.sge.domain.Aluno
import br.edu.ifal.sge.controller.AlunoController

@TestFor(AlunoController)
@Mock(Aluno)
class AlunoControllerTests {


def populateValidParams(params) {
assert params != null
// TODO: Populate valid properties like...
//params["name"] = 'someValidName'
}

void testIndex() {
controller.index()
assert "/aluno/list" == response.redirectedUrl
}

void testList() {

def model = controller.list()

assert model.alunoInstanceList.size() == 0
assert model.alunoInstanceTotal == 0
}

void testCreate() {
def model = controller.create()

assert model.alunoInstance != null
}

void testSave() {
controller.save()

assert model.alunoInstance != null
assert view == '/aluno/create'

response.reset()

populateValidParams(params)
controller.save()

assert response.redirectedUrl == '/aluno/show/1'
assert controller.flash.message != null
assert Aluno.count() == 1
}

void testShow() {
controller.show()

assert flash.message != null
assert response.redirectedUrl == '/aluno/list'


populateValidParams(params)
def aluno = new Aluno(params)

assert aluno.save() != null

params.id = aluno.id

def model = controller.show()

assert model.alunoInstance == aluno
}

void testEdit() {
controller.edit()

assert flash.message != null
assert response.redirectedUrl == '/aluno/list'


populateValidParams(params)
def aluno = new Aluno(params)

assert aluno.save() != null

params.id = aluno.id

def model = controller.edit()

assert model.alunoInstance == aluno
}

void testUpdate() {
controller.update()

assert flash.message != null
assert response.redirectedUrl == '/aluno/list'

response.reset()


populateValidParams(params)
def aluno = new Aluno(params)

assert aluno.save() != null

// test invalid parameters in update
params.id = aluno.id
//TODO: add invalid values to params object

controller.update()

assert view == "/aluno/edit"
assert model.alunoInstance != null

aluno.clearErrors()

populateValidParams(params)
controller.update()

assert response.redirectedUrl == "/aluno/show/$aluno.id"
assert flash.message != null

//test outdated version number
response.reset()
aluno.clearErrors()

populateValidParams(params)
params.id = aluno.id
params.version = -1
controller.update()

assert view == "/aluno/edit"
assert model.alunoInstance != null
assert model.alunoInstance.errors.getFieldError('version')
assert flash.message != null
}

void testDelete() {
controller.delete()
assert flash.message != null
assert response.redirectedUrl == '/aluno/list'

response.reset()

populateValidParams(params)
def aluno = new Aluno(params)

assert aluno.save() != null
assert Aluno.count() == 1

params.id = aluno.id

controller.delete()

assert Aluno.count() == 0
assert Aluno.get(aluno.id) == null
assert response.redirectedUrl == '/aluno/list'
}
}


e que tem a seguinte saída:

file:///home/iris/Documents/workspace-sts-2.9.1.RELEASE/SGE/target/test-reports/html/br/edu/ifal/sge/0_AlunoControllerTests.html


Devido ao teste ter sido gerado automatimante, não consigo entender onde está o erro - se é um erro da plataforma ou no escopo do código.
Tags: problmeas, controller


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