因Django自带的测试框架包含Unittest和Doctest,这里以Django的Unittest框架为入口开始学习。
Django Unittest要点:
1)TestCase Classes分类:
a. SimpleTestCase ,一般用于扩展为特定功能的测试函数
b. TransactionTestCase ,事务型 测试用例,一般用于测试Database
c. TestCase ,该类可用于测试 Web Sites
d. LiveServerTestCase(Django1.4以上的版本),该类在后台运行了一个 Live Django Server,并在Teardown函数中关闭Server,这样允许用户自动测试Client
比如Selenium(一个测试工具集),可在浏览器端执行一系列测试功能和模拟真实的用户行为。
2) Fixture
用于为测试用例准备数据,并在测试用例完成后恢复数据库。
从数据库中导出测试用例所需数据的Json文件,在Test Class第一行写一个Fixtures,Django将在测试过程中加载数据Json文件,并在每个TestCase运行完成后,回滚数据库到 Syncdb时的状态
3) Testing response
a. client
发启客户端请求并返回请求结果。Django.test.client中的Client函数。该函数可以在未启动Web服务的情况下,模拟Get和Post等客户端请求,并通过Unittest的其他功能验证请求的返回内容是否正确。
b. content and context
使用Get和Post模拟客户端行为,将返回一个Response Object,其包含Content和Context等多个参数。其中Content是指返回的网页源码中Body中的内容;Context是指模板Template Context,可以通过 response.context['Template中的变量'] 来检测Context中内容的正确性
c. status_code
Http状态码
#以下是一个访问网站首页的测试,包括匿名访问(test_AnonymousGetIndex)和用户登陆访问(test_loginGeIndex)2个用例
#测试类IndexTest中包含3个函数,只有函数名称以“test”开头的才会被当成用例执行
#setUp将在每个用例执行前执行,teatDown则刚好相反,将在每个用例执行之后执行
from django.test.client import Client
from django.test import TestCase
class IndexTest(TestCase):
def setUp(self):
self.client = Client()
def test_AnonymousGetIndex(self):
response = self.client.get('/index/')
self.assertEqual(response.context['page_num'], 0)
def test_loginGeIndex(self):
self.client.login(username='test', password='123456')
response = self.client.get('/index/')
self.assertEqual(response.context['page_num'], 1)
分享到:
相关推荐
单元测试框架Unittest简介 单元测试是指在软件开发中,对程序的最小单元(函数、方法)进行测试的过程。unittest不仅可以用于单元测试,还可以用于自动化测试用例的开发和执行。组织执行自动化测试用例,并提供一些...
#### 一、unittest简介 `unittest`是Python内置的一个非常强大的单元测试框架,它提供了一套完整的API来帮助开发者编写、组织以及运行测试案例。使用`unittest`进行测试的主要目的是确保代码按预期工作,并且在进行...
#### 一、`unittest` 模块简介 `unittest`(以前被称为 `PyUnit`)是 Python 的标准库之一,它提供了一套用于编写单元测试的工具。使用 `unittest` 进行测试,可以帮助开发者确保代码在修改或重构后仍然能够按照...
**Selenium简介** Selenium的核心组件是WebDriver,它模拟用户对浏览器的操作,如点击、输入、滚动等。WebDriver支持多种浏览器,如Chrome、Firefox、Edge等,并且可以通过不同的语言绑定(如Python、Java)进行编程...
资源名称:python unittest基本介绍内容简介:python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest;本文档主要讲述的是python unittest基本介绍;感兴趣的朋友可以过来看看。Python(英语发音:/ˈpa...
#### Requests简介与优势 Requests是一个基于Python编写的HTTP库,它采用了Apache2 Licensed许可证,以其简洁优雅的API而受到广泛好评。相比于Python标准库中的`urllib2`模块,Requests不仅提供了更为现代化的API,...
如具有丰富的自动化测经验,本课程可能并不满足你学习计划:结合课程(书籍中提供的)软件,多练习,多思考课程目标:掌握unittest,了解pytest课程简介:unittest是Python标准库中自带的单元测试框架。unittest有...
本文档分为多个部分,包括简介、文档组成、如何将单元测试融入工程项目、配置Xcode工程、依赖与独立测试目标的区别以及创建和运行测试案例等。文档旨在帮助开发者理解并掌握如何在iOS应用中实施单元测试。 #### 三...
#### 一、单元测试与unittest模块简介 单元测试(Unit Test)是一种软件开发过程中的测试方法,它针对软件中的最小可测试单元进行验证,通常指的是一个类或者一个函数。Python 中的 `unittest` 模块是一个内置的标准...
#### 一、unittest框架简介 `unittest` 是 Python 自带的一个标准库,用于编写和运行单元测试。它基于 Java 的 JUnit 测试框架设计,功能强大且易于使用,适用于各种规模的应用程序开发。 #### 二、unittest基本...
#### ASP.NET MVC框架简介 ASP.NET MVC是一种用于构建动态Web应用程序的开源框架,它基于模型-视图-控制器(Model-View-Controller)架构模式。这种模式分离了业务逻辑、数据管理和用户界面,使得开发过程更加清晰...
**一、cmockery简介** 1. **安装与集成**:`cmockery`通常作为一个库包含在项目中,可以通过下载源代码并按照指示进行编译和安装。在项目中,需要包含必要的头文件,并链接`cmockery`库。 2. **基本概念**:`...
requests 库简介** - `requests` 是一个Python HTTP客户端库,用于发送HTTP请求。它可以轻松地处理cookies和会话、支持文件上传以及认证等功能。 **2. unittest 框架** - `unittest` 是Python自带的一个单元...
`unittest`模块简介 `unittest`是Python标准库中的一个模块,用于编写、组织和运行测试用例。它受到Java中的JUnit框架的影响,提供了丰富的功能和灵活性,能够帮助开发者轻松地创建和维护测试用例。 #### 2. 编写...
单元测试是软件开发过程中的重要环节,主要用于验证代码的各个最小可测试单元——通常是函数或类的方法——在特定条件下的行为是否符合预期。本PPT深入介绍了单元测试的基本概念、常见误解、实施方法以及相关工具。...
8. **README.md**:通常会提供项目简介、如何运行和构建应用的说明。 通过学习这个项目,开发者可以了解到如何在Gradle中设置App Engine项目,如何编写单元测试,以及如何利用Gradle的生命周期和任务来管理和执行...
4. `README.md`或`README.rst` - 提供库的简介、安装指南和使用示例。 5. `nose2unittest`目录 - 包含实际的库代码,可能有`__init__.py`文件和其他模块。 6. `tests`目录 - 包含库自身的测试用例,用于验证库的功能...
#### 一、Unittest单元测试框架简介 Unittest是Python标准库中的一个单元测试框架,被广泛应用于自动化测试中。它不仅提供了创建测试用例的功能,还支持测试套件的构建及批量执行,极大地提高了测试效率。 ##### ...