2012-10-06 3 views
2

서버 오류에 대한 처리기를 작성하고 루트 urls.py에서 정의하십시오. handler500 = 'myhandler' 그리고 어떻게 작동하는지 테스트하기 위해 unittest를 작성하고 싶습니다. 테스트를 위해 오류가있는 뷰를 작성하고 테스트 URL 구성에서 정의합니다. 브라우저에서이 뷰에 대한 요청을 할 때 내 처리기를보고 상태 코드 500을받습니다.하지만이 뷰에 요청을하면 스택 추적을 볼 수 있습니다. 내 검사가 실패했다. UnitTest로 handler500을 테스트하기위한 아이디어가 있습니까?custom handler500을 테스트하는 방법은 무엇입니까?

+0

정확히 어떤 부분을 테스트 하시겠습니까? 당신의 처리기의 행동? 그것이 핸들러로 등록되어 있다는 사실? –

+0

내 처리기가 기본 handler500으로 등록되어 있는지 테스트하고 싶습니다. (응답 내용 및 상태 코드가 500 인 콘텐츠) – Gr1N

+2

셀렌과 같은 실제 테스트 프레임 워크가 필요할 수 있습니다. –

답변

1

여기서 원하는 것은 integration testing입니다. 단위 테스트는 적절한 도구가 아닙니다.

Django includes supportSelenium과 같은 유명한 라이브 브라우저 테스트 도구를 사용하는 경우.

당신은 지적하고 특정 경우에, 당신이 때문에 간단한 방법 사용 할 수 있습니다, 참으로 pretty complicated to retrieve the status code for a page using Selenium이므로 :

  1. 사용하십시오 LiveServerTestCase
  2. 사용 파이썬 HTTP 클라이언트를 같은 requests에 테스트 페이지에 액세스하십시오.
  3. 테스트 페이지가 HTTP 500 오류를 생성하는지 확인하십시오.
  4. 테스트 페이지에 예상되는 내용이 들어 있는지 확인하십시오.

테스트 페이지에서 일부 JS를 테스트하려면 해당 부분에 대해 Selenium을 사용하여 상태 테스트 요청을 조합하십시오.

+0

Thnx! 'LiveServerTestCase'라는 훌륭한 기능을 통해 원하는 모든 것을 할 수 있습니다. – Gr1N

관련 문제