Django 单元测试】的更多相关文章

    django 单元测试小结 django 测试 从前很少写单元测试了,特别是web应用.最近不知不觉喜欢起来这个事情了,发现单元测试对于软件的模块,正交性有很大促进作用,因为函数,模块写的不合理,单元测试写起来就麻烦的多呀.公司的项目一直都是用Django,所以写点django单元测试的小总结,记录为主,备查.   测试的场景 框架Django1.8 测试工具 unittest, 要记得给test设置一个独特的settings. 测试请求 也就是测试整个view部分 官方案例 其中可能会…
从前很少写单元测试了,特别是web应用.最近不知不觉喜欢起来这个事情了,发现单元测试对于软件的模块,正交性有很大促进作用,因为函数,模块写的不合理,单元测试写起来就麻烦的多呀.公司的项目一直都是用Django,所以写点django单元测试的小总结,记录为主,备查. 测试的场景 框架Django1.8 测试工具 unittest, 要记得给test设置一个独特的settings. 测试请求 也就是测试整个view部分 官方案例 其中可能会遇到登录,或者时session怎么模拟的问题 测试带有orm…
如何进行Django单元测试 Django的单元测试使用python的unittest模块,这个模块使用基于类的方法来定义测试.类名为django.test.TestCase,继承于python的unittest.TestCase. 执行目录下所有的测试(所有的test*.py文件):运行测试的时候,测试程序会在所有以test开头的文件中查找所有的test cases(inittest.TestCase的子类),自动建立测试集然后运行测试. $ python manage.py test 执行a…
mock 测试 mock 是辅助单元测试的模块,用于测试不方便调用的别人的接口.举个简单的例子,比如说,我们测试django 写的微信登录接口,正常流程下,我们需要前端拉起授权窗口,获取jscode或其他数据.而这一部分操作,我们在单元测试的时候没办法模拟出来.此时,我们希望假设调用微信的接口,正常返回了我们需要的数据,在这种情况下,我们便需要简单的mock 函数,假设已经该函数正常返回了我们的结果,让流程更通畅. 代码demo from rest_framework.test import A…
前言 本文,旨在说明python Django如何编写单元测试,从“背景”,“测试要求”,“代码编写”,“如何运行”,“检验测试覆盖度” 这几个方面来说明附上django的官方文档单元测试章节=>这里 背景 python中主要的单元测试框架有以下几种: unittest 标准库,最出名.django中原生自带的单元测试库就是对unittest对封装点击这里=>最基本的unittest的属性讲解和编写思路 Django 的默认测试库是 unittest,使用它时,要写的样板文件比较多. 下面的两…
引言 关于单元测试的基本知识这里不再讲述,简单一句话:单元测试是用一段代码去测试另一段代码.最常用的框架是unittest,这是python的单元测试框架,而django单元测试框架test.TestCase是继承了python的unittest.TestCase. TestCase也是对unittest.TestCase进行了进一步的封装,省去了很多重复要写的代码,比如定义一个self.client.Email Service提供了方便的邮件发送的方法. 众所周知django模式是MTV模型,…
Django测试框架非常简单,首选方法是使用python标准库中的unittest模块. Writing tests Django的单元测试使用python的unittest模块,这个模块使用基于类的方法来定义测试.类名为django.test.TestCase,继承于python的unittest.TestCase. from django.test import TestCase from myapp.models import Animal class AnimalTestCase(Tes…
TestCase django自带有一个TestCase模块来进行测试,我们可以参考官网 来写单元测试的代码.我这里主要是总结一些错误. 用户无法登陆 我们有些api登录后才可以进行测试,所以我们可以在setUp 方法里面先登录用户后再进行操作,那今天我遇到的问题就是,登陆不上,authenticate返回的是None,明明有正确的用户名密码的呀.后来我定睛一看,发现执行 python manage.py test gray_switch后,第一行出现这 Creating test databa…
测试的场景 框架Django1.8 测试工具 unittest, 要记得给test设置一个独特的settings. 测试请求 也就是测试整个view部分 官方案例 其中可能会遇到登录,或者时session怎么模拟的问题 测试带有orm的模块 需要mock的测试,比较多的情况是有第三方API调用, 发邮件,发短信这种 unittest提供的断言种类挺多,但是经常用的也就几个 self.assertContains, self.assertEqual, self.assertTrue 顺便提下有用的…
在使用单元测试时,有时候需要测试数据库中有数据,这时我们可以使用Django的Fixtures来生成测试数据. 基础配置 在settings.py 中配置如下内容: FIXTURE_DIRS = ('/path/to/api/fixtures/',) 在要测试的app中,增加目录fixtures 在新增的fixtures目录下,新建文件myapp.json,文件名自己定,后缀必须是.json. 配置myapp.json 文件中内容格式如下,实际使用时,要删除掉实际情况,使用数据,并删除掉注释,如…
零.前言 之前做过一个微信公众平台的开发者后台,功能比较简单,我个人也比较懒,所以就没有写测试.前段时间更新了一下版本,对代码进行了改动.结果昨天收到消息说后台出问题了,一个功能无法使用.我检查了半天,发现是上次更新时候和那个功能有关的数据库不小心删掉了...导致功能无法使用. 今天修复了错误之后,痛下决心决定写个测试,保证以后不会出这样弱智的问题. 一.用什么测试 我使用的框架是Django,所以第一反应就是去官网查文档.Django自身带测试功能,封装了Python的unittest,并且提…
The test client test client是一个python类,来模拟一个简单的“哑”浏览器,允许你来测试你的view函数.你可以使用test client完成下列事情: 1.模拟"Get"和"Post"请求,观察响应结果--从HTTP(headers,status codes)到页面内容.       2.检查重定向链(如果有的话),在每一步检查URL和status code.       3.用一个包括特定值的模板context来测试一个reques…
1.准备数据模式,Django空库测试需要所有相关数据模式必须在Django中定义,说白了,model不能有managed=Fasle,为了解决这个问题,你必须得有一个managed全部为True的Schema代码版本. 2.准备初始化数据,当然使用fixtures固定数据集特性,这个数据集最好现存库里面查询出要用的数据,然后用Django序列化器生成所需的格式即可. 3.如permission,contenttype这类系统生成的数据,不需要做fixture,但是其中如果有你自己自定义插进去的…
对一个功能的验证往往是需要很多多测试用例,可以把测试用例集合在一起执行,这就产生了测试套件TestSuite 的概念,它是用来组装单个测试用例,规定用例的执行的顺序,而且TestSuite也可以嵌套TestSuite. 可以通过addTest() 加载TestCase 到TestSuite 中,再返回一个TestSuite 实例. 示例:将simple_test 中的用例装载到测试套件中 suite=unittest.TestSuite() # 创建测试套件 suite.addTest(simp…
Django中间件 我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下: 也就是说,每一个请求都是先通过中间件中的 process_request 函数,这个函数返回 None 或者 HttpResponse 对象,如果返回前者,继续处理其它中间件,如果返回一个 HttpResponse,就处理中止,返回到网页上. 中间件不用继承自任何类(可以继承 object ),下面一个中间件大概的样子: class Commo…
学校的软工项目要开发一个网站,自然的想到用python+Django来做.由于之前没有用Django开发过大型的网站项目,所以遇到了一些问题.记录在此,便于以后查阅. 今天完成了项目结构的设计.部分的单元测试以及把代码使用策略模式重构. 项目结构 使用app完成功能 首先要明确网站基本的功能实现是要用各种各样的app来实现的,我觉得这样的优点有几点: 功能划分明确,之后修改方便. 因为有多个models,所以可以针对不同的功能设计数据库,也是为了功能逻辑之间的划分. 多个test可以更有针对性的…
如果本文看不懂的,去看的我视频吧!http://www.testpub.cn/ ------------------------------------------- Django 自称是“最适合开发有限期的完美WEB框架”.本文参考<Django web开发指南>,快速搭建一个blog 出来,在中间涉及诸多知识点,这里不会详细说明,如果你是第一次接触Django ,本文会让你在感性上对Django有个认识,完成本文操作后会让你有兴趣阅读的相关书籍和文档. 废话少说,come on!! 本操作…
1. 内存.内存,还是加内存 2. 使用单独的静态文件服务器 3. 关闭KeepAlive(如果服务器不提供静态文件服务,如:大文件下载) 4. 使用memcached 5. 使用select_related()加载关联表数据 6. 使用values()过滤不必要的字段查询 7. 使用模板cache 8. 加载编译的模板 9.让Django支持数据库长连接 可以提高不少性能 from django.template import loader from django.http import Ht…
Django中ORM的使用. 一.安装python连接mysql的模块:MySQL-python sudo pip install MySQL-python 安装完成后在python-shell中测试: >>> import MySQLdb Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Python/2.7/s…
Django 1.10中文文档: https://github.com/jhao104/django-chinese-doc 只要创建好 数据模型, Django 会自动为生成一套数据库抽象的API, 可以让你创建.检索.更新和删除对象.这篇文档阐述如何使用这些API. 关于模型查询所有选项的完整细节,请见 数据模型参考 . 在整个文档(以及参考)中,都将引用下面的模型,它是一个博客应用: from django.db import models class Blog(models.Model)…