位置: 编程技术 - 正文

对Python的Django框架中的项目进行单元测试的方法(python django orm)

编辑:rootadmin

推荐整理分享对Python的Django框架中的项目进行单元测试的方法(python django orm),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:对python的django框架代码进行加密,python中django框架,python djang,python django orm,python中django框架,python django 项目框架图,python django 项目框架图,python中django框架,内容如对您有帮助,希望把文章链接给更多的朋友!

Python中的单元测试

我们先来回顾一下Python中的单元测试方法。下面是一个 Python的单元测试简单的例子:

假如我们开发一个除法的功能,有的同学可能觉得很简单,代码是这样的:

但是这样写究竟对还是不对呢,有些同学可以在代码下面这样测试:

但是这样运行后得到的结果,自己每次都得算一下去核对一遍,很不方便,Python中有 unittest 模块,可以很方便地进行测试,详情可以文章最后的链接,看官网文档的详细介绍。

下面是一个简单的示例:

我简单地写了三个测试示例(不一定全面,只是示范,比如没有考虑除数是0的情况),运行后发现:

汗!发现了没,竟然两个都失败了,测试发现:

4.2除以3 等于 1. 不等于期望值 1.4

9除以4等于2,不等于期望的 2.

下面我们就是要修复这些问题,再次运行测试,直到运行不报错为止。

譬如根据实际情况,假设我们只需要保留到小数点后6位,可以这样改:

再次运行就不报错了:

OK

Django中的单元测试

尽早进行单元测试(UnitTest)是比较好的做法,极端的情况甚至强调“测试先行”。现在我们已经有了第一个model类和Form类,是时候开始写测试代码了。

Django支持python的单元测试(unit test)和文本测试(doc test),我们这里主要讨论单元测试的方式。这里不对单元测试的理论做过多的阐述,假设你已经熟悉了下列概念:test suite, test case, test/test action, test data, assert等等。

对Python的Django框架中的项目进行单元测试的方法(python django orm)

在单元测试方面,Django继承python的unittest.TestCase实现了自己的django.test.TestCase,编写测试用 例通常从这里开始。测试代码通常位于app的tests.py文件中(也可以在models.py中编写,但是我不建议这样做)。在Django生成的 depotapp中,已经包含了这个文件,并且其中包含了一个测试用例的样例:

depot/depotapp/tests.py

你可以有几种方式运行单元测试:

python manage.py test:执行所有的测试用例 python manage.py test app_name, 执行该app的所有测试用例 python manage.py test app_name.case_name: 执行指定的测试用例

用第三种方式执行上面提供的样例,结果如下:

你可能会主要到,输出信息中包括了创建和删除数据库的操作。为了避免测试数据造成的影响,测试过程会使用一个单独的数据库,关于如何指定测试数据库 的细节,请查阅Django文档。在我们的例子中,由于使用sqlite数据库,Django将默认采用内存数据库来进行测试。

下面就让我们来编写测试用例。在《Agile Web Development with Rails 4th》中,7.2节,最终实现的ProductTest代码如下:

对Product测试的内容包括:

1.title,description,price,image_url不能为空;

2. price必须大于零;

3. image_url必须以jpg,png,jpg结尾,并且对大小写不敏感;

4. titile必须唯一;

让我们在Django中进行这些测试。由于ProductForm包含了模型校验和表单校验规则,使用ProductForm可以很容易的实现上述测试:

depot/depotapp/tests.py

然后运行 python manage.py test depotapp.ProductTest。如同预想的那样,测试没有通过:

因为我们之前并没有考虑到image_url的图片扩展名可能会大写。修改ProductForm的相关部分如下:

然后再运行测试:

测试通过,并且通过单元测试,我们发现并解决了一个bug。

详解Python的Django框架中manage命令的使用与扩展 【简介】django-admin.py是Django的一个用于管理任务的命令行工具。本文将描述它的大概用法。另外,在每一个Djangoproject中都会有一个manage.py。manage.py是对d

用Python写冒泡排序代码 python代码实现冒泡排序代码其实很简单,具体代码如下所示:代码CodehighlightingproducedbyActiproCodeHighlighter(freeware)

Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法 本文实例讲述了Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法。分享给大家供大家参考,具体如下:每天打开电脑第一件事应该就是打开人

标签: python django orm

本文链接地址:https://www.jiuchutong.com/biancheng/385282.html 转载请保留说明!

上一篇:使用Python的Django框架结合jQuery实现AJAX购物车页面(python中django)

下一篇:详解Python的Django框架中manage命令的使用与扩展(python+django)

  • 新公司第一年要做亏
  • 开模具厂一年能挣多少钱
  • 餐饮业税负上升有什么原因
  • 总公司设立分公司的决定
  • 免征的附加税是什么
  • 向关联企业捐赠现金500万元,假定按照税法规定
  • 监理费可以由施工方出吗
  • 增值税零税率发票预缴税额
  • 公司土地转让另外公司
  • 财产租赁合同印花税计税依据含税吗
  • 工程暂估价超了怎么办
  • 跨年暂估收入如何调整
  • 行政事业单位结算起点
  • 收到国债本金和利息会计分录
  • 小规模纳税人公司注销流程及费用
  • 查验发票真伪新旧有哪些网站?
  • 技术维护费属于劳务还是研发和技术服务
  • 职工个人负担的医疗保险可以在计算个人所得税前扣除
  • 当年亏损可以用以前年度来弥补吗
  • 基金赎回手续费怎么计算
  • 收到工程款退回的账务处理
  • 未分配利润转增股本要交税吗
  • 小规模纳税人专票如何申报
  • 分支机构企业所得税是否必须跟总公司分摊吗
  • 外购已税化妆品生产的护肤护发品
  • 涉税票据如何避免税务风险?
  • Win10任务栏图标居中
  • 什么是会计科目?为什么要设置会计科目?
  • 财政应返还额度年末有余额吗?
  • php对象赋值给变量
  • 杜拉通河谷中的Nuestra Señora de la Hoz老修道院,西班牙塞哥维亚 (© Arco Images GmbH/Alamy)
  • php是面向对象语言吗
  • js正则表达式删除特定字符
  • 非居民纳税人可以做汇算清缴吗
  • 资产减值损失会影响利润总额吗
  • php 面向对象
  • 生产成本结转怎么登账
  • 出口退税管理类别四类
  • 六款小巧的HTTP Server[C语言] 贵贵的博客 开发|架构|开源|共享
  • 一般纳税人不动产租赁可以简易征收吗
  • 其他综合收益要结转到本年利润吗
  • 非独立核算的分公司如何报税
  • 差额征税的扣除额是填什么钱
  • day12-Servlet02
  • 织梦怎么新建页面
  • 登记注册车辆登记英语
  • sql server重新配置
  • mongodb 教程
  • 简易纳税额
  • win10!
  • 制单会计岗位风险点
  • 先收款后给发票合法吗
  • 疫情防控期间临时性工作补助申请
  • 劳动关系与劳务关系的联系与区别
  • 企业支付宝收款码是进公账吗
  • 代收的车船税没交怎么办
  • 确定收入 记账凭证摘要怎么写
  • 企业如何建账做账
  • sqlserver数据库维护
  • win8.1应用商店还能用吗
  • 苹果的os什么意思
  • java调用so库文件
  • 将程序桌面图标放到桌面
  • linux操作系统百度百科
  • win10添加开机启动项
  • 跑跑3s是谁
  • Android 中的 TableLayout 继承自
  • linux列操作
  • python计算两个数的最大公约数
  • css fontstyle
  • Node.js中的什么模块是用于处理文件和目录的
  • cmd pushd
  • javascript怎么写
  • python读写segy数据
  • jquery获取复选框是否被选中
  • 亦庄地税局税务局营业大厅
  • 国税总局云南省税务局官网
  • 浙江国地税联合申报系统
  • 形容有待完善的词语
  • 国家发票真伪查验
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设