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脚本实现网卡流量监控
Feb 14 Python
python字符串的常用操作方法小结
May 21 Python
python中numpy基础学习及进行数组和矢量计算
Feb 12 Python
python爬取内容存入Excel实例
Feb 20 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
使用虚拟环境打包python为exe 文件的方法
Aug 29 Python
python之yield和Generator深入解析
Sep 18 Python
django中的图片验证码功能
Sep 18 Python
Django REST 异常处理详解
Jul 15 Python
一文详述 Python 中的 property 语法
Sep 01 Python
python代数式括号有效性检验示例代码
Oct 04 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 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
php 读取shell管道传输过来的内容
2010/03/01 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
求职简历中的自我评价分享
2013/12/08 职场文书
医院信息公开实施方案
2014/05/09 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
风雨哈佛路观后感
2015/06/03 职场文书