相关疑难解决方法(0)

如何为django视图编写单元测试?

我在理解如何为django设计单元测试时遇到问题.

根据我的理解,一次性测试整个视图似乎是不可能的.我们需要区分请求的前后状态.但我不知道如何设计这个.有没有现实生活中的例子?

查看文档,示例过于简化,仅关注模型.

@login_required
def call_view(request, contact_id):
    profile = request.user.get_profile()
    if request.POST:        
        form = CallsForm(profile.company, request.POST)           
        if form.is_valid()
        return HttpResponseRedirect('/contact/' + contact_id + '/calls/')
    else:        
        form = CallsForm(profile.company, instance=call)              
    variables = RequestContext(request, {'form':form}
    return render_to_response('conversation.html', variables)
Run Code Online (Sandbox Code Playgroud)

更新:

试图成功测试工作,但它仍然失败:

def test_contact_view_success(self):
    # same again, but with valid data, then
    self.client.login(username='username1', password='password1')
    response = self.client.post('/contact/add/', {u'last_name': [u'Johnson'], }) 
    self.assertRedirects(response, '/')
Run Code Online (Sandbox Code Playgroud)

错误信息:

AssertionError: Response didn't redirect as expected: Response code was 200 (expected 302)
Run Code Online (Sandbox Code Playgroud)

我认为这是因为form.is_valid()失败并且它没有重定向,对吗?

django unit-testing

63
推荐指数
2
解决办法
4万
查看次数

标签 统计

django ×1

unit-testing ×1