【问题标题】:Writing a unit test for a DJANGO view为 DJANGO 视图编写单元测试
【发布时间】:2014-07-14 07:48:42
【问题描述】:

您好,我是 DJANGO 的新手,我无法理解如何为 django 设计单元测试。 请帮我为以下视图设计一个单元测试用例。

def camera_gallery(request,gallery_id=None):
        #endpoint is url from where i get JSON data
    endpoint = settings.GALLERYAPI+'?galleryId='+ gallery_id+'&api_key=' + settings.GALLERY_API_KEY

    response = requests.get(endpoint)
    if response.status_code == 200:
        json_response = json.loads(response.content)
        context = json_response
    else:
        raise Http404
    return render(request, 'app/gallery_secondary.html',context)

【问题讨论】:

  • 在进行单元测试时,总是要讨论在哪里划定界限。在您的情况下,您正在访问的端点(GalleryAPI)应通过其自己的单元测试进行测试。测试访问另一个端点的视图属于集成测试领域。
  • 在创建单元测试之前,请确保纠正一个错误:它应该是 raise Http404() 而不是 raise Http404(注意括号)。
  • 您能否推荐一个测试代码来测试这个视图

标签: python django unit-testing django-views django-testing


【解决方案1】:

Django testing tutorial 有用于验证 200 与 404 返回代码以及检查响应是否包含特定字符串的示例代码,因此您应该从它开始。

另外,您可能想用Mox 模拟requests 库,这样您就不会向这些服务发出实际的HTTP 请求。这种技术称为依赖注入(请参阅WikipediaSOMartin Fowler 了解更多信息)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2015-01-16
    • 2010-10-02
    • 2014-09-14
    相关资源
    最近更新 更多