제네릭 클래스 기반 뷰에서 반환 된 HTML의 유효성을 검사하는 테스트를 작성하려고합니다. 단지 어떻게 내가 할 수있는 테스트하는 동안 그와클래스 기반 제네릭 뷰에서 수동으로 응답 받기
# views.py
from django.shortcuts import render
def simple_view(request, template='template.html'):
return render(request, template)
을 :
# tests.py
from django.http import HttpRequest
from .views import simple_view
request = HttpRequest()
response = simple_view(request)
을 다음 response
에 대한 유효성 검사를 할의는 단순히 템플릿을 렌더링이 기능을 기반 뷰 있다고 가정 해 봅시다.
# views.py
from django.views.generic import TemplateView
class SimpleView(TemplateView):
template_name = 'template.html'
이제 기본적으로 동일한 시험 방법이 실패 :
Traceback (most recent call last):
File "tests.py", line 30, in test_home_page_returns_correct_html
response = view_func(request).render()
File "lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "lib/python2.7/site-packages/django/views/generic/base.py", line 82, in dispatch
if request.method.lower() in self.http_method_names:
AttributeError: 'NoneType' object has no attribute 'lower'
I에서
# tests.py
from django.http import HttpRequest
from .views import SimpleView
request = HttpRequest()
view_func = SimpleView.as_view()
response = view_func(request).render()
결과 지금은 TemplateView에서 상속 클래스 기반보기로 위를 변환하고 싶습니다 'request.method
을 수동으로 GET
으로 설정하려고했으나 session
에 대해 불평하는 또 다른 오류가 발생했습니다. request
.
"빈"요청으로 TemplateView에서 응답을받는 방법이 있습니까?
는
http://stackoverflow.com/questions/8603035/how-tdd-can-be -applied-to-django-class-based-generic-views – dm03514