Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:测试模板是否继承了正确的模板_Django_Django Templates_Django Testing - Fatal编程技术网

Django:测试模板是否继承了正确的模板

Django:测试模板是否继承了正确的模板,django,django-templates,django-testing,Django,Django Templates,Django Testing,在django中,您可以测试视图是否呈现了这样的正确模板 def test_view_renders_correct_template(self): response = self.client.get("/some/url/") self.assertTemplateUsed(response, 'template.html') 但是,如果您想测试所使用的模板是否从正确的模板扩展/继承,该怎么办。因此@e4c5指出,它与所使用的资产模板相同 刚刚测试过

在django中,您可以测试视图是否呈现了这样的正确模板

    def test_view_renders_correct_template(self):
        response = self.client.get("/some/url/")
        self.assertTemplateUsed(response, 'template.html')

但是,如果您想测试所使用的模板是否从正确的模板扩展/继承,该怎么办。

因此@e4c5指出,它与所使用的
资产模板相同

刚刚测试过:

app/views.py

from django.shortcuts import render_to_response


def base_index(request):
    return render_to_response('base.html')


def template_index(request):
    return render_to_response('template.html')
app/url.py

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^base$', views.base_index, name='base'),
    url(r'^template$', views.template_index, name='template')
]
templates/template.html

{% extends 'base.html' %}
{% block content %}
  <div>help</div>
{% endblock %}

所有2项测试都通过了

仍在使用AssertTemplate
from django.test import TestCase


class TemplateTest(TestCase):
    def test_base_view(self):
        response = self.client.get('/base')
        self.assertTemplateUsed(response, 'base.html')
        self.assertTemplateNotUsed(response, 'template.html')

    def test_template_view(self):
        response = self.client.get('/template')
        self.assertTemplateUsed(response, 'template.html')
        self.assertTemplateUsed(response, 'base.html')