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中的index函数用法
Aug 06 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
Python排序函数的使用方法详解
Dec 11 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 Python
python删除csv文件的行列
Apr 06 Python
Python中可变和不可变对象的深入讲解
Aug 02 Python
一篇文章带你了解Python和Java的正则表达式对比
Sep 15 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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
PHP数组循环操作详细介绍 附实例代码
2013/02/03 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
js 表单验证方法(实用)
2009/04/28 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
理工大学毕业生自荐信范文
2014/02/22 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
2015年维修工作总结
2015/04/25 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
安全教育培训制度
2015/08/06 职场文书
学习党章心得体会2016
2016/01/15 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL