关于测试
有段时间被领导叫过去写单元测试。
这段时间决定对此段经历做一些总结。
单元测试是一种软件测试过程,测试的是软件应用程序的独立单元,确保能做预期中的事情。
分为不同的层级,可以测试单个方法,看它能否返回正确的值以及能否处理正确的数据,
也可以测试整个方法组件,确保一系列用户输入能得到所需的结果。
单元测试背后,有四个基本的概念:
测试固件 fixture 执行测试所需要的设置。包含数据库、示例数据集合服务器搭建。可能还包括测试完毕之后执行的清理操作。
用例 case 测试的基本单元。检查指定的输入能否得到预期的结果。
- 组件 suit 一系列测试用例或者其他测试组件,作为一个整体执行
- 运行程序 runner 负责执行测试并把结果反馈給用户的软件程序。
自动化测试
优点
节省时间
避免出问题
看起来专业
增进团队协作
将测试代码封装到一个类中,并且增加断言。
django的单元测试
会在app应用中查找测试
找到 testcase 的一个子类
为测试创建一个特殊的数据库
查找以test开头的测试方法
报告失败的测试
Django 为 编写测试提供了一些便利的工具
测试客户端
伪装成一个web浏览器
模拟对URL 的 GET POST 请求
跟踪重定向
测试指定的请求由指定的django 模板渲染,而且模板上下文包含特定的值
客户端的目的不是取代 selenium 或者是其他操作浏览器的框架
用于确认是否渲染了正确的模板,而且为模板传入了正确的上下文数据
TestCase 有一些扩展
Simple的
Transaction的
等等…