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随手笔记之标准类型内建函数
Dec 02 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
python实现K最近邻算法
Jan 29 Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 Python
Python range与enumerate函数区别解析
Feb 28 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
Python脚本调试工具安装过程
Jan 11 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
咖啡与牛奶
2021/03/03 冲泡冲煮
删除无限级目录与文件代码共享
2006/07/12 PHP
用PHP和MySQL保存和输出图片
2006/10/09 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
php获取字段名示例分享
2014/03/03 PHP
smarty简单入门实例
2014/11/28 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
angular学习之ngRoute路由机制
2017/04/12 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
升职自荐书范文
2013/11/28 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
学校花圃的标语
2014/06/18 职场文书
教师工作能力自我评价
2015/03/04 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
党支部评议意见
2015/06/02 职场文书
公司会议开幕词
2016/03/03 职场文书