grails.I에서 컨트롤러에 대한 통합 테스트를하고 있습니다. 테스트 케이스에서 쿼리 문자열을 전달해야하며 동일한 경우 controller.request.queryString
으로 전달합니다.Grails에서의 통합 테스트 : 쿼리 문자열 매개 변수에서 null 가져 오기
테스트가 실패했습니다. 쿼리 문자열 매개 변수에 대해 null value
이 표시됩니다.
컨트롤러 - UserExController
FOLL 내가 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]
}
를 사용하여 쿼리 문자열 매개 변수 'UID'를 읽고 userInstance을 얻고이 testing.In 통합을하고 있어요되는 작업입니다 위의 서면 작업에 대한 테스트입니다.이 쿼리 문자열 매개 변수를 전달하고 작업을 호출합니다.
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
}
}
나는을 얻고 있습니다. 컨트롤러에서
User.findByUsername(userId) //userId is comming null
답장을 보내 주셔서 감사 합니다만 userExController.request.queryString = 'uid = rp123'을 userExController.params.uid = 'rp123'으로 변경해도 아무 것도 변경되지 않습니다. 오류가 지속됩니다. 컨트롤러 코드가 정상적으로 작동하는 이유는 컨트롤러를 변경해야하는 이유입니다. 통합 테스트가 작동하도록 이미 실행중인 코드를 변경할 필요가 없다고 생각합니다. –