사용자 개체 생성을위한 단위 테스트를 요청하는 요청이 있습니다.Grails PUT 요청 (XML 포함)
단위 테스트 :
void testPUTXMLResponse() {
def mockUser = new User(username:"fred", password:User.encrypt("letmein"), firstName:"Fred", lastName:"Flintstone", middleName:"T", phone:"555-555-5555", email:'[email protected]', activationDate:new Date(), logonFailureCount:0)
mockDomain(User, [mockUser])
def mockUserXML = mockUser as XML
mockRequest.method = 'PUT'
mockRequest.contentType = 'text/xml'
mockRequest.format = 'xml'
mockRequest.content = mockUserXML.toString().getBytes()
controller.create()
def updatedUser = XML.parse(mockResponse.contentAsString)
assert updatedUser.id == 1
}
컨트롤러 액션 : 컨트롤러의 동작이 실행될 때 어떤 이유
def create = {
println request.xml
def user = new User(params.user)
if(!user.hasErrors() && user.save()) {
println user.id
withFormat {
html { /*render(view:"show", [user:user])*/ }
xml { render user as XML }
json { render user as JSON }
}
} else {
println user.errors
withFormat {
html { /*render(view:"create", [user:user])*/ }
xml { render user.errors as XML }
json { render user.errors as JSON }
}
}
}
는 PARAMS 맵은 널이다. POST 요청에 대해 매우 유사한 단위 테스트가 있는데 정상적으로 작동합니다.