how-to-understand-unittest

关于测试

有段时间被领导叫过去写单元测试。

这段时间决定对此段经历做一些总结。

单元测试是一种软件测试过程,测试的是软件应用程序的独立单元,确保能做预期中的事情。

分为不同的层级,可以测试单个方法,看它能否返回正确的值以及能否处理正确的数据,

也可以测试整个方法组件,确保一系列用户输入能得到所需的结果。

单元测试背后,有四个基本的概念:

  • 测试固件 fixture 执行测试所需要的设置。包含数据库、示例数据集合服务器搭建。可能还包括测试完毕之后执行的清理操作。

  • 用例 case 测试的基本单元。检查指定的输入能否得到预期的结果。

  • 组件 suit 一系列测试用例或者其他测试组件,作为一个整体执行
  • 运行程序 runner 负责执行测试并把结果反馈給用户的软件程序。

自动化测试

优点

  • 节省时间

  • 避免出问题

  • 看起来专业

  • 增进团队协作

将测试代码封装到一个类中,并且增加断言。

django的单元测试

会在app应用中查找测试

找到 testcase 的一个子类

为测试创建一个特殊的数据库

查找以test开头的测试方法

报告失败的测试

Django 为 编写测试提供了一些便利的工具

测试客户端

伪装成一个web浏览器

模拟对URL 的 GET POST 请求

跟踪重定向

测试指定的请求由指定的django 模板渲染,而且模板上下文包含特定的值

客户端的目的不是取代 selenium 或者是其他操作浏览器的框架

用于确认是否渲染了正确的模板,而且为模板传入了正确的上下文数据

TestCase 有一些扩展

Simple的
Transaction的
等等…