나는 컨트롤러Grails 컨트롤러의 응답 상태를 어떻게 단위 테스트합니까?
def render201 = {
render(status:201)
}
def render202 = {
response.setStatus(202)
}
def render203 = {
response.setStatus(203)
render(status:203)
}
def render204 = {
response.setStatus(204)
render(status:205)
}
에서 다음과 같은 기능을 가지고 있습니다 그리고 당신은 '돈 있을지
void test201() {
controller.render201()
assertEquals(201, controller.response.status)
}
void test202() {
controller.render202()
assertEquals(202, controller.response.status)
}
void test203() {
controller.render203()
assertEquals(203, controller.response.status)
}
void test204() {
controller.render204()
assertEquals(204, controller.response.status)
}
test201이 메시지 몇 가지 이유를 들어
junit.framework.AssertionFailedError: expected:<201> but was:<200>
으로 다음 테스트를 실패했습니다 명시 적으로 응답 상태를 설정하면 렌더링은 단위 테스트에서 실행될 때 항상 200을 반환합니다.
또한 브라우저에서 실제로 이것을 호출하면 render202가 오류를 반환하지만 render201과 render203은 정상적으로 작동합니다. 나는 render204가 무엇을 할 것인지 모른다.
여기 무슨 일 이니? 이것이 Grails의 버그입니까? 이 같은
Grails 2.2+에서 '@ TestFor' 주석을 올바르게 사용한다면'response.status'를 사용할 수 있습니다. – Joseph