美文网首页
Django 单元测试

Django 单元测试

作者: SSRSGJYD | 来源:发表于2018-10-13 17:30 被阅读0次
Client

django.test.Client 模拟了一个web用户的行为,通过模拟GET与POST请求,以浏览器的视角追踪url跳转、返回结果

使用方法:

模拟请求:
c = Client()
response = c.get(path, data=None, follow=False, secure=False, **extra)
response = c.post(path, data=None, content_type=MULTIPART_CONTENT, follow=False, secure=False, **extra)

其中,response的属性有:

  • client:发起模拟请求的client
  • content:也就是reponse的body
  • context:返回的网页渲染使用的数据
  • json:将body解析为json格式
  • request:模拟请求时request中的data
  • status_code:http状态码
  • templates:返回的网页渲染使用的模板
  • resolver_match:判断实际处理请求的view是否是预期的view,不能直接用于使用as_view生成的视图
# my_view here is a function based view
self.assertEqual(response.resolver_match.func, my_view)

# class-based views need to be compared by name, as the functions
# generated by as_view() won't be equal
self.assertEqual(response.resolver_match.func.__name__, MyView.as_view().__name__)
测试Django登录系统:
c.login(username='fred', password='secret')
c.force_login(user, backend=None)
c.logout()
Testcase

使用方法:

  • classmethod TestCase.setUpTestData():更改全局的测试数据
  • TestCase.setUp():每个测试函数执行前执行,为测试做准备
  • TestCase.tearDown():每个测试函数执行后执行,清理场景

基于比较的断言:

  • assertEqual()
  • assertTrue()
  • assertHTMLEqual(html1, html2, msg=None)
  • assertHTMLNotEqual(html1, html2, msg=None)
  • assertXMLEqual(xml1, xml2, msg=None)
  • assertXMLNotEqual(xml1, xml2, msg=None)
  • assertJSONEqual(raw, expected_data, msg=None)
  • assertJSONNotEqual(raw, expected_data, msg=None)
  • assertQuerysetEqual(qs, values, transform=repr, ordered=True, msg=None)

基于异常的断言:

  • assertRaisesMessage(expected_exception, expected_message, callable, *args, **kwargs)
  • assertRaisesMessage(expected_exception, expected_message)

基于输入的特定field的断言:

  • assertFieldOutput(fieldclass, valid, invalid, field_args=None, field_kwargs=None, empty_value='')
运行单元测试:
# 测试整一个工程
$ python manage.py test 
# 只测试某个应用
$ python manage.py test app --keepdb
# 只测试一个Case
$ python manage.py test MyTestCase
# 只测试一个方法
$ python manage.py test My_test_func

参考资料:https://docs.djangoproject.com/en/2.0/topics/testing/tools/
https://www.jianshu.com/p/34267dd79ad6

相关文章

  • 技术博客汇总

    对微信公众号接口的单元测试 Github与Travis CI测试与部署 Django单元测试 NodeJs单元测试...

  • Django单元测试指定配置文件(PyCharm设置)

    创建指定配置文件编写单元测试 创建单元测试Django tests 编辑Configurationimage.pn...

  • Django - 单元测试

    Django - 单元测试 Unit tests VS doctest Unit tests —— unittes...

  • django单元测试总结

    一、django单元测试框架: 编写测试用例: 引用TestCase基类:django.test继承了python...

  • Django 单元测试

    Django自带单元测试的模块django.test,该模块使用了Python的标准库unitest,基于类的方法...

  • Django单元测试基础知识

    相关资源 Django官方文档unittest文档 简单的例子 关于django的单元测试,需要知道的是 对于每一...

  • Django fixtures

    Fixtures在Django测试中的使用 在对Django项目做单元测试时,经常需要生成或者导入一些初始数据。对...

  • Django单元测试

    本文主要介绍基于Django框架开发的web程序进行单元测试。 因为使用django程序的view函数的参数一般为...

  • django单元测试

    在项目开发过程中,单元测试必不可少,通过测试可以减少bug数,提升代码质量。 Django支持单元测试,在添加应用...

  • Django单元测试

    为什么需要自动化测试 对于大项目,对每个单元进行测试可以快速定位错误,确保项目质 量 在 python 中,利用 ...

网友评论

      本文标题:Django 单元测试

      本文链接:https://www.haomeiwen.com/subject/lxwoaftx.html