【发布时间】:2012-04-12 07:34:49
【问题描述】:
我有一个 Spock 测试用例,其中 setup 块如下所示:
setup: "set the required objects"
def company = new Company(shortName:"infyyy",fullName:"infoysys",
region:"tamilnadu" ,email:"a@ac.com" ,telphone:34343433,fax:34343433).save(failOnError:true)
def project = new Project(name:"testing")
def userInstance = new User(username:username,password:password,
company:company,project:project,pt:["dummy"]).save(failOnError:true)
def tasksInstance = new Tasks(title:"testingwork",startDate:(new Date()-4),endDate:(new Date().clearTime()-6),description:"blah blah",project:project,completed:true,user:userInstance).save(failOnError:true)
此外,Tasks 域类看起来像这样:
class Tasks {
static belongsTo = [ user : User, project: Project ]
//other code
}
而User 类是这样的:
class User {
static hasMany = [ holidays : Holiday, tasks : Tasks, pt:String, project: Project ]
//other code
}
但是当我运行我的测试并且我的测试失败(没有出现错误消息,但它在我的 Spock 测试的 then 块中失败)并且我发现其中有错误。我的设置不会在User 和Tasks 之间创建任何关系,这使我的测试失败。
我要测试的控制器代码是:
def todaysTasks() {
def user = User.get(springSecurityService.principal.id)
def choice = params.managersProject
params.max = Math.min(params.max ? params.int('max') : 10,100)
def search = Tasks.createCriteria().list(max: params.max as Integer, offset: params.offset as Integer, order: params.order as String, sort : params.sort) {
and {
project {
like('name',"${choice}")
}
eq('endDate', new Date().clearTime())
}
}
println "todays task selected project is " + search
[tasksInstanceList : search, tasksInstanceTotal: search.getTotalCount() ]
}
上述测试中的println 打印出0。即使我在测试中将endDate 设置为小于今天的日期,为什么会发生这种情况?
提前致谢。
【问题讨论】:
-
您需要提供更多详细信息。请使用堆栈跟踪发布失败的测试和错误消息。