Django REST framework 单元测试实例解析


Posted in Python onNovember 07, 2019

这篇文章主要介绍了Django REST framework 单元测试实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

环境

Win10

Python3.7

Django2.2

项目

参照官网 快速开始 写了一个 demo

测试

参照官网 测试

和 Django 的测试差不多

创建 tutorial/tests/tests.py

import json
from django.test import TestCase
from rest_framework import status
from rest_framework.test import APIClient

class LittleTestCase(TestCase):
  def setUp(self):
    self.click = APIClient()

  def test_users_post(self):
    # /users/ POST
    data = {
      "username": "tom",
      "email": "tom@example.com"
    }
    response = self.client.post("/users/", data)
    self.assertEqual(response.status_code, status.HTTP_201_CREATED)

    # /users/:id GET 地址
    response_content = json.loads(response.content)
    user_url = response_content["url"]

    # /users/:id GET 检查新增用户是否符合预期
    response = self.client.get(user_url)
    response_content = json.loads(response.content)
    self.assertEqual(response.status_code, 200)
    self.assertEqual("tom", response_content["username"])
    self.assertEqual("tom@example.com", response_content["email"])

执行测试

python manage.py test <测试文件所在目录>

python manage.py test tests/

测试结果

执行一个测试成功

测试前创建测试数据库,测试完毕删除数据库

Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.022s

OK
Destroying test database for alias 'default'...

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python利用递归和walk()遍历目录文件的方法示例
Jul 14 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
在python里面运用多继承方法详解
Jul 01 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
用Pelican搭建一个极简静态博客系统过程解析
Aug 22 Python
Python类中方法getitem和getattr详解
Aug 30 Python
Jupyter加载文件的实现方法
Apr 14 Python
python 检测图片是否有马赛克
Dec 01 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 Python
Python中tkinter的用户登录管理的实现
Apr 22 Python
Python Django框架介绍之模板标签及模板的继承
May 27 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 #Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 #Python
Flask框架路由和视图用法实例分析
Nov 07 #Python
Python 切分数组实例解析
Nov 07 #Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 #Python
Flask框架请求钩子与request请求对象用法实例分析
Nov 07 #Python
Django框架ORM数据库操作实例详解
Nov 07 #Python
You might like
php实现发送微信模板消息的方法
2015/03/07 PHP
php微信开发接入
2016/08/27 PHP
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
python爬虫 正则表达式解析
2019/09/28 Python
Python中实现输入一个整数的案例
2020/05/03 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
提高python代码运行效率的一些建议
2020/09/29 Python
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
20岁生日感言
2014/01/13 职场文书
安全检查管理制度
2014/02/02 职场文书
消防宣传口号
2014/06/16 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
年终晚会活动方案
2014/08/21 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书