小编Car*_*ker的帖子

Django 测试视图模板上下文

我正在尝试测试

return render(request, 'template.html', context)

并且似乎达不到要求。测试这个不值得吗?或者如果在测试时值得,我该如何实现?

查看.py

def create_employee_profile(request):
    name_form = EmployeeNameForm()
    context = {'name_form':name_form}
    return render(request,
                'template_create_employee_profile.html',
                context
                )
Run Code Online (Sandbox Code Playgroud)

我知道if: else:缺少这些陈述。我认为它们与测试无关。

测试文件

# TEST:  context({'name_form':name_form})
def test_CreateEmployeeProfileView_context(self):
    name_form = EmployeeNameForm()
    response = self.client.get(reverse(
                            'create_employee_profile'))
    self.assertEquals(response.context['name_form'], name_form)
Run Code Online (Sandbox Code Playgroud)

这让我离成功最近。这是我的错误:

AssertionError: <Empl[27 chars]alid=False,
                fields=(employee_choices;first_nam[20 chars]ame)> != 
                <Empl[27 chars]alid=Unknown,
                fields=(employee_choices;first_n[22 chars]ame)>
Run Code Online (Sandbox Code Playgroud)

详细视图呢?

# TEST:  context({'name':name})
def test_CustomerEmployeeProfileView_context(self):
    name = CustomerEmployeeName.objects.get(pk=1)
    response = self.client.get(
        reverse('service:customer_employee_profile_detail', kwargs={'pk': 1}))

    self.assertIsInstance(response.context['name'], name)
Run Code Online (Sandbox Code Playgroud)

得到这个错误:

TypeError: isinstance() arg 2 must be a type or tuple of types
Run Code Online (Sandbox Code Playgroud)

django unit-testing

6
推荐指数
1
解决办法
5015
查看次数

标签 统计

django ×1

unit-testing ×1