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 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
python中MySQLdb模块用法实例
Nov 10 Python
Python解析nginx日志文件
May 11 Python
python中循环语句while用法实例
May 16 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
Jun 16 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
python+selenium实现简历自动刷新的示例代码
May 20 Python
利用Python检测URL状态
Jul 31 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
Apr 13 Python
Jupyter notebook如何修改平台字体
May 13 Python
Python天气语音播报小助手
Sep 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中的串行化变量和序列化对象
2006/09/05 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
类之Prototype.js学习
2007/06/13 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
node.js 中国天气预报 简单实现
2016/06/06 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
2016/01/20 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
基于python中theano库的线性回归
2018/08/31 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
python+django+rest框架配置创建方法
2019/08/31 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
如何启动时不需输入用户名与密码
2014/05/09 面试题
2015年见习期工作总结
2014/12/12 职场文书
工作简历自我评价
2015/03/11 职场文书
健康教育主题班会
2015/08/14 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers