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实现批量重命名文件的代码
May 25 Python
Python中下划线的使用方法
Mar 27 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
python实现读Excel写入.txt的方法
Apr 29 Python
Django项目中model的数据处理以及页面交互方法
May 30 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
Python转换时间的图文方法
Jul 01 Python
Python 使用多属性来进行排序
Sep 01 Python
python实现宿舍管理系统
Nov 22 Python
Python 随机按键模拟2小时
Dec 30 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 图片上添加透明度渐变的效果
2009/06/29 PHP
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
js原型链原理看图说明
2012/07/07 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
Python读写配置文件的方法
2015/06/03 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
护士自我评价范文
2014/01/25 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书