我正在尝试将单元测试用于脚手架。我对原始脚手架模板进行了一些更改,以满足我的应用需求。这是测试的代码:
void "Test that the show action returns the correct model"() {
when:"A domain instance is passed to the show action"
populateValidParams(params)
def domainName = new DomainName(params)
controller.show(domain.toString())
then:"A model is populated containing the domain instance"
model.domainNameInstance == domainName
}
这是show动作的代码,我根据id中的两个值从数据库中获取域实例,该值由控制器中的toString方法创建:
def show(String id){
if (id!=null){
def (term, college)=id.split('_')
DomainName domainNameInstance
respond domainNameInstance=DomainName.findByVal1AndVal2(val1, val2)
}else{
response.sendError(HttpServletResponse.SC_NOT_FOUND)
}
}
我遇到的问题是,当我运行测试时,domainInstance在测试中为空,而域正在返回正确的值。有人知道我需要更改以使测试中的domainInstance不为null吗?作为参考,我使用的是Grails 2.4.3和Scaffolding 2.1.2插件。
答案 0 :(得分:0)
在单元测试中,您需要保存正在创建的DomainName
实例。您的show
操作正在查询数据库,但您尚未保留测试实例。