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中split方法用法分析
Apr 17 Python
Python中使用items()方法返回字典元素对的教程
May 21 Python
Python的装饰器用法学习笔记
Jun 24 Python
Python 基础之字符串string详解及实例
Apr 01 Python
Sanic框架安装与简单入门示例
Jul 16 Python
Django中的Model操作表的实现
Jul 24 Python
python实现在图片上画特定大小角度矩形框
Oct 24 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 Python
python request 模块详细介绍
Nov 10 Python
python爬虫破解字体加密案例详解
Mar 02 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+DBM的同学录程序(5)
2006/10/09 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
英文版网络工程师求职信
2013/10/28 职场文书
自荐信包含哪些内容
2013/10/30 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
承诺书格式
2014/06/03 职场文书
签约仪式致辞
2015/07/30 职场文书