Django单元测试中Fixtures的使用方法


Posted in Python onFebruary 26, 2020

在使用单元测试时,有时候需要测试数据库中有数据,这时我们可以使用Django的Fixtures来生成测试数据。

在对Django项目做单元测试时,我们需要一些初始的数据来作为检测结果的依据,那么对于我们已经有正式数据库的模块来说,使用Fixture载入数据是简单有效的方法。

首先,你需要一份json格式的数据文件,Django对此提供了很好的支持—dumpdata 命令:

python manage.py dumpdata myapp >myapp/fixtures/myapp.json
# 这个命令将帮助你把数据库中myapp 导入到myapp/fixtures/test.json中
# 这个myapp可以没有,会把数据库所有数据生成Json文件

基础配置

在settings.py 中配置如下内容:

FIXTURE_DIRS = ('/path/to/api/fixtures/',)

接着在test.py中 加入:

fixtures = ['test.json']

 最后么当然是运行test命令了:

./manage.py test

示例代码

# coding=utf-8
from __future__ import unicode_literals
import json
from rest_framework import status
from rest_framework.test import APITestCase


class DjangoUnittest01(APITestCase):
 fixtures = ["my_test.json"]

 def setUp(self):

  data = {
   "username": 't1',
   "password": 'admin123',
   "code": 666,
  }
  self.client.post('/base/admin/login/', data)

 def test_usergroup_user_information(self):# 以test开头的方法将会执行

  url = '/base/admin/teacher/usergroup/21/user/4/information/?otype=soldier'
  response = self.client.get(url)
  data = {
   "update_date": "2018-05-31 16:22:55",
   "task": "196311177981753978",
   "otype": "soldier",
   "task_name": "f_test1",
   "progress": 1.0,
   "id": 871
  }

  self.assertEqual(response.status_code, status.HTTP_200_OK)
  self.assertDictEqual(response.data["results"][0], data)

测试用例通过

Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 3.863s

OK
Destroying test database for alias 'default'...

常用断言

assertEqual(a, b)  a == b  
assertNotEqual(a, b)  a != b  
assertTrue(x)  bool(x) is True  
assertFalse(x)  bool(x) is False  
assertIs(a, b)  a is b  
assertIsNot(a, b)  a is not b  
assertIsNone(x)  x is None 
assertIsNotNone(x)  x is not None 
assertIn(a, b)  a in b  
assertNotIn(a, b)  a not in b 
assertIsInstance(a, b)  isinstance(a, b) 
assertNotIsInstance(a, b)  not isinstance(a, b)
assertListEqual(a, b)  lists  
assertTupleEqual(a, b)  tuples 
assertDictEqual(a, b)  dicts

到此这篇关于Django单元测试中Fixtures用法详解的文章就介绍到这了,更多相关Django Fixtures内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python获取指定目录下所有文件名列表的方法
May 20 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
Feb 21 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
Windows上使用Python增加或删除权限的方法
Apr 24 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
对pyqt5之menu和action的使用详解
Jun 20 Python
Python 占位符的使用方法详解
Jul 10 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
python使用rsa非对称加密过程解析
Dec 28 Python
Django models filter筛选条件详解
Mar 16 Python
Pandas中DataFrame基本函数整理(小结)
Jul 20 Python
python 解压、复制、删除 文件的实例代码
Feb 26 #Python
Python递归调用实现数字累加的代码
Feb 25 #Python
python烟花效果的代码实例
Feb 25 #Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 #Python
使用python绘制cdf的多种实现方法
Feb 25 #Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 #Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 #Python
You might like
解析ajax事件的调用顺序
2013/06/17 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
Python urlopen()函数 示例分享
2014/06/12 Python
python文件选择对话框的操作方法
2019/06/27 Python
python安装scipy的步骤解析
2019/09/28 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
python自动化办公操作PPT的实现
2021/02/05 Python
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
校园广播稿500字
2014/02/04 职场文书
保护环境演讲稿
2014/05/10 职场文书
体育系毕业生自荐信
2014/06/28 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
指导老师鉴定意见
2015/06/05 职场文书
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers