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

21

我该如何测试这些函数?它们只是渲染HTML页面并将一些对象传递给HTML页面。

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

1
@TimmyO'Mahony 我从未做过TDD,所以我甚至不知道从哪里开始。 - iCodeLikeImDrunk
我在开始TDD时看了一下Toast Driven。网络上有很多指南。 - jvc26
@jvc26,我已经浏览了一些Toast的内容,但我仍然感到困惑,不知道什么时候测试什么东西。 - iCodeLikeImDrunk
1个回答

49

可以进行以下测试:

  1. 响应代码
  2. 所使用的模板
  3. 模板是否包含某些特定文本

代码看起来会像这样:

    from django.test import Client, TestCase
    from django.urls import reverse
    
    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
你好,这种测试应该被认为是什么类型的测试?是验收测试还是单元测试?抱歉我从未学过如何进行测试。谢谢你的帮助! - iCodeLikeImDrunk
3
这将是一个系统测试。请尝试观看这段视频:http://www.youtube.com/watch?feature=player_embedded&v=ickNQcNXiS4 - super9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接