我正在为grails中的控制器进行集成测试。我需要在测试用例中传递查询字符串,并且我将它传递为controller.request.queryString
。grails集成测试:查询字符串参数为空
我的测试失败了。它为查询字符串参数提供null value
。
控制器 - UserExController
FOLL是我正在做整合testing.In这个我在读书的查询字符串参数“UID”和获得userInstance使用GORM方法
def getUser() {
//reading the query string parameter 'uid'
def userId = request.getParameter("uid")
User user = User.findByUsername(userId)
render view:'edit', model:[userInstance:user]
}
行动这是测试。在这我传递的查询字符串参数上面写的行动,并呼吁行动
class UserInstanceTests extends GroovyTestCase {
@Test
void testPerfSummaryApi() {
def userExController=new UserExController()
userExController.request.queryString='uid=rp123'
userExController.getUser()
def model = userExController.modelAndView.model.userInstance
assertNotNull model
}
}
我越来越groovy.lang.MissingMethod.Exception
在FOLL电话:
User.findByUsername(userId) //userId is comming null
感谢您的回复,但将userExController.request.queryString ='uid = rp123'更改为userExController.params.uid ='rp123'不会改变任何内容。错误仍然存在。控制器代码工作正常,为什么要更改控制器?我不认为有必要改变已经运行的代码来进行集成测试。 – 2013-04-06 18:02:06