Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 查询与单元测试grails-mockDomain中的条件有许多关系_Unit Testing_Grails_Mocking_Has Many_Createcriteria - Fatal编程技术网

Unit testing 查询与单元测试grails-mockDomain中的条件有许多关系

Unit testing 查询与单元测试grails-mockDomain中的条件有许多关系,unit-testing,grails,mocking,has-many,createcriteria,Unit Testing,Grails,Mocking,Has Many,Createcriteria,我在ProyectoInvestigacionController.groovy中有这个方法 def filtrar(){ def consulta="%"+params.consulta.trim()+"%" if(consulta.isEmpty()==false){ def proyectoInvestigacionInstance=ProyectoInvestigacion.createCriteria().list{ or {

我在ProyectoInvestigacionController.groovy中有这个方法

def filtrar(){
    def consulta="%"+params.consulta.trim()+"%"
    if(consulta.isEmpty()==false){
        def proyectoInvestigacionInstance=ProyectoInvestigacion.createCriteria().list{
            or {
                like("titulo",consulta)
                like("codigo",consulta)
                like("resumen",consulta)
            }
        }
}
def filtrar(){
    def consulta="%"+params.consulta.trim()+"%"
    if(consulta.isEmpty()==false){
        def participacionInstance=Participacion.createCriteria().list{
            or{
                proyectoinvestigacion{
                    or {
                        like("titulo",consulta)
                        like("codigo",consulta)
                        like("resumen",consulta)
                    }
                }
                investigador{
                    or {
                        like("apellido",consulta)
                        like("nombre",consulta)
                    }
                }
            }
        }
        }   
}
单元测试

@TestMixin(GrailsUnitTestMixin)    
@TestFor(ProyectoInvestigacionController)
@Mock([ProyectoInvestigacion])
class ProtectoInvestigacionFiltrarTests {



void testFiltrar() {
def ProyectoInvestigacion proyecto=new ProyectoInvestigacion(titulo:"Primer Proyecto Investigacion",
        resumen:"Proyecto filtrar",
        fechainicio:new Date("01/01/2012"),
        fechafin:new Date("12/30/2013"),
        codigo:"01",
        estado:"Aprobado").save()

assertEquals 1, ProyectoInvestigacion.count()

    def consulta="Proyecto filt"

    params.consulta=consulta
    def model =controller.filtrar()

    println response.getXml().toString()

    assertTrue response.getXml().toString().contains("Proyecto filtrar")        
}
@TestMixin(GrailsUnitTestMixin)
@TestFor(ParticipacionController)
@Mock([Participacion,Alumno,Docente,ProyectoInvestigacion,Investigador])
class ParticipacionFiltrarTests {
Alumno alumno1
Docente docente1
ProyectoInvestigacion proyecto

void setUp() {
    alumno1= new Alumno(nombre:"ruben",apellido:"pennise",email:"Ruben@hotmail.com",
        matriculaUniversitaria:"795",estado:"Activo").save()
    docente1= new Docente(nombre:"oscar",apellido:"quinteros",email:"oequinteros@hotmail.com",
        matriculaProfesional:"789").save()
    proyecto=new ProyectoInvestigacion(titulo:"Proyecto Investigacion Filtrar Participacion",
            resumen:"resumen del proyecto",
            fechainicio:new Date("01/01/2012"),
            fechafin:new Date("12/30/2013"),
            codigo:"01",
            estado:"Aprobado").save()
}

void tearDown() {
    // Tear down logic here
}

void testFiltrar() {
def participacion= new Participacion(rol:'Director',dedicacion:120,
        fechadesde:new Date("01/01/2012"),fechahasta:new Date("12/30/2013"),investigador:docente1,proyectoinvestigacion:proyecto).save()
assertEquals 1, Participacion.count()

    def consulta="oscar"

    params.consulta=consulta
    def model =controller.filtrar()

    println response.getXml().toString()

    // el getText o getXml no devuelven lo correcto pero en run si, porque?
    assertTrue response.getXml().toString().contains("oequinteros@hotmail.com")     
    assertTrue response.getXml().toString().contains("Proyecto Investigacion Filtrar Participacion")
}
此测试工作正常
现在与很多人有联系
我的participationcontroller.groovy中有方法filter

def filtrar(){
    def consulta="%"+params.consulta.trim()+"%"
    if(consulta.isEmpty()==false){
        def proyectoInvestigacionInstance=ProyectoInvestigacion.createCriteria().list{
            or {
                like("titulo",consulta)
                like("codigo",consulta)
                like("resumen",consulta)
            }
        }
}
def filtrar(){
    def consulta="%"+params.consulta.trim()+"%"
    if(consulta.isEmpty()==false){
        def participacionInstance=Participacion.createCriteria().list{
            or{
                proyectoinvestigacion{
                    or {
                        like("titulo",consulta)
                        like("codigo",consulta)
                        like("resumen",consulta)
                    }
                }
                investigador{
                    or {
                        like("apellido",consulta)
                        like("nombre",consulta)
                    }
                }
            }
        }
        }   
}
单元测试

@TestMixin(GrailsUnitTestMixin)    
@TestFor(ProyectoInvestigacionController)
@Mock([ProyectoInvestigacion])
class ProtectoInvestigacionFiltrarTests {



void testFiltrar() {
def ProyectoInvestigacion proyecto=new ProyectoInvestigacion(titulo:"Primer Proyecto Investigacion",
        resumen:"Proyecto filtrar",
        fechainicio:new Date("01/01/2012"),
        fechafin:new Date("12/30/2013"),
        codigo:"01",
        estado:"Aprobado").save()

assertEquals 1, ProyectoInvestigacion.count()

    def consulta="Proyecto filt"

    params.consulta=consulta
    def model =controller.filtrar()

    println response.getXml().toString()

    assertTrue response.getXml().toString().contains("Proyecto filtrar")        
}
@TestMixin(GrailsUnitTestMixin)
@TestFor(ParticipacionController)
@Mock([Participacion,Alumno,Docente,ProyectoInvestigacion,Investigador])
class ParticipacionFiltrarTests {
Alumno alumno1
Docente docente1
ProyectoInvestigacion proyecto

void setUp() {
    alumno1= new Alumno(nombre:"ruben",apellido:"pennise",email:"Ruben@hotmail.com",
        matriculaUniversitaria:"795",estado:"Activo").save()
    docente1= new Docente(nombre:"oscar",apellido:"quinteros",email:"oequinteros@hotmail.com",
        matriculaProfesional:"789").save()
    proyecto=new ProyectoInvestigacion(titulo:"Proyecto Investigacion Filtrar Participacion",
            resumen:"resumen del proyecto",
            fechainicio:new Date("01/01/2012"),
            fechafin:new Date("12/30/2013"),
            codigo:"01",
            estado:"Aprobado").save()
}

void tearDown() {
    // Tear down logic here
}

void testFiltrar() {
def participacion= new Participacion(rol:'Director',dedicacion:120,
        fechadesde:new Date("01/01/2012"),fechahasta:new Date("12/30/2013"),investigador:docente1,proyectoinvestigacion:proyecto).save()
assertEquals 1, Participacion.count()

    def consulta="oscar"

    params.consulta=consulta
    def model =controller.filtrar()

    println response.getXml().toString()

    // el getText o getXml no devuelven lo correcto pero en run si, porque?
    assertTrue response.getXml().toString().contains("oequinteros@hotmail.com")     
    assertTrue response.getXml().toString().contains("Proyecto Investigacion Filtrar Participacion")
}

此测试无效!!使用mockDomain?

Docente和Alumno extends Investigador查询与createcriteria有很多关系是可能的…grails的版本是2.2.3 Investigador有很多参与者