我是新手,尝试为Service类编写单元测试具有方法,它在域对象上调用条件。
如何在以下服务类方法中模拟域行为?
{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
}"
最佳答案
在grails 2中,您可以使用Mock()功能和mockDomain来设置您的条件,
@TestFor(MyService)
@Mock(Individual)
Individual.metaClass.static.withCriteria = { [ i1, i2 ] }
https://stackoverflow.com/questions/9695335/
相关文章:
grails - 将grails选择值传递给actionSubmit to Javascript方法
grails - Grails 中是否有首选/标准方式将表单参数绑定(bind)到域对象列表?
unit-testing - 如何编写Grails delete()方法的测试
grails - Grails url映射从sperate配置文件传递数据
grails - 对grails的 Ant 调用因 “[exec] Application is p
grails - User.get()在Grails 2.0中损坏,返回null