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通过post提交数据的方法
May 06 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
python 日期操作类代码
May 05 Python
python实现最长公共子序列
May 22 Python
使用numba对Python运算加速的方法
Oct 15 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
Apr 01 Python
python 追踪except信息方式
Apr 25 Python
python中def是做什么的
Jun 10 Python
使用Django的JsonResponse返回数据的实现
Jan 15 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/14 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
PHPEXCEL 使用小记
2013/01/06 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
PHP7引入的&quot;??&quot;和&quot;?:&quot;的区别讲解
2019/04/08 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
div移动 输入框不能输入的问题
2009/11/19 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
详解python进行mp3格式判断
2016/12/23 Python
python样条插值的实现代码
2018/12/17 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
python监控nginx端口和进程状态
2019/09/06 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
python中return的返回和执行实例
2019/12/24 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
高一地理教学工作总结
2015/08/12 职场文书