如何在django中测试“渲染到模板”功能? (TDD)

时间:2012-05-15 20:48:19

标签: django testing tdd django-views

我该如何测试这些功能?他们所做的就是渲染html页面并将一些对象传递给html页面。

def index(request):
    companies = Company.objects.filter(approved = True);
    return direct_to_template(request, 'home.html', {'companies': companies} );

2 个答案:

答案 0 :(得分:29)

可以测试以下内容:

  1. 响应代码
  2. 使用的模板
  3. 模板包含一些特定文字
  4. 代码看起来像这样:

    class TestPage(TestCase):
    
       def setUp(self):
           self.client = Client()
    
       def test_index_page(self):
           url = reverse('index')
           response = self.client.get(url)
           self.assertEqual(response.status_code, 200)
           self.assertTemplateUsed(response, 'index.html')
           self.assertContains(response, 'Company Name XYZ')
    

答案 1 :(得分:1)

我不确定你想要测试,但这里有一些建议。

首先,熟悉Django python shell。您可以通过进入终端,转到根文件夹并键入:

来调用shell
python manage.py shell

然后您可以导入相关模型:

from myapp.models import *

然后你可以让你的查询集看到它返回的内容:

companies = Company.objects.filter(approved = True)
companies

你会得到错误或反馈。这是一种测试查询的简便方法。

第二个选项是实际构建模板,运行内置Web服务器,并尝试加载页面。 Django附带了一个出色的调试器,如果您有任何错误,它会通知您。如果您不明白如何做到这一点,我建议您浏览django教程。 https://docs.djangoproject.com/en/dev/intro/tutorial01/