Grails 标准的单元测试模拟
我是grails新手,尝试为服务类编写单元测试时使用了方法,它调用域对象上的条件 如何在服务类的以下方法中模拟域行为Grails 标准的单元测试模拟,grails,grails-domain-class,Grails,Grails Domain Class,我是grails新手,尝试为服务类编写单元测试时使用了方法,它调用域对象上的条件 如何在服务类的以下方法中模拟域行为 {def checkForDuplicates(firstName, lastName, gender, birthDate, accountId){ def duplicateIndividual = Individual.withCriteria{ eq('firstName',firstName) eq('lastName',l
{def checkForDuplicates(firstName, lastName, gender, birthDate, accountId){
def duplicateIndividual = Individual.withCriteria{
eq('firstName',firstName)
eq('lastName',lastName)
eq('gender',gender)
eq('birthDate',birthDate)
and{
accounts{
eq('id', accountId)
}
}
}
if(duplicateIndividual){
log.error("Found duplicate for ${duplicateIndividual.firstName}
${duplicateIndividual.lastName}")
return true
}
return false
}"
在Grails2中,您可以使用Mock()功能和mockDomain设置您的条件
@TestFor(MyService)
@Mock(Individual)
然后,您只需按照正常方式创建域类
在Grails2之前,您可以更改查询的元类,如
Individual.metaClass.static.withCriteria = { [ i1, i2 ] }