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 相关文章推荐
TensorFlow实现MLP多层感知机模型
Mar 09 Python
Python生成任意范围任意精度的随机数方法
Apr 09 Python
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 Python
Python实现获取系统临时目录及临时文件的方法示例
Jun 26 Python
Python实现微信机器人的方法
Sep 06 Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 Python
用Python绘制漫步图实例讲解
Feb 26 Python
关于python的缩进规则的知识点详解
Jun 22 Python
python批量修改交换机密码的示例
Sep 22 Python
python使用smtplib模块发送邮件
Dec 17 Python
Django自带的用户验证系统实现
Dec 18 Python
python基于opencv 实现图像时钟
Jan 04 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 cout<<的一点看法
2010/01/24 PHP
php字符串截取的简单方法
2013/07/04 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
php使用codebase生成随机数
2014/03/25 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
javascript中"/"运算符常见错误
2010/10/13 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
js验证密码强度解析
2020/03/18 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
python中模块的__all__属性详解
2017/10/26 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
PHP面试题附答案
2015/11/28 面试题
工厂总经理岗位职责
2014/02/07 职场文书
热情服务标语
2014/10/07 职场文书
办公室主任岗位职责
2015/01/31 职场文书
2015年实习单位评语
2015/03/25 职场文书
行政答辩状范文
2015/05/21 职场文书
公司仓库管理制度
2015/08/04 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android
MySQL深分页问题解决思路
2022/12/24 MySQL