水电费
2016-08-24 02:24
197 查看
def main(): print 'hello'
单元测试的重要性就不多说了,可恶的是python中有太多的单元测试框架和工具,什么unittest, testtools, subunit, coverage, testrepository, nose, mox, mock, fixtures, discover,再加上setuptools, distutils等等这些,先不说如何写单元测试,
光是怎么运行单元测试就有N多种方法,再因为它是测试而非功能,是很多人没兴趣触及的东西。但是作为一个优秀的程序员,不仅要写好功能代码,写好测试代码一样的彰显你的实力。如此多的框架和工具,很容易让人困惑,困惑的原因是因为并没有理解它的
基本原理,如果一些基本的概念都不清楚,怎么能够写出思路清晰的测试代码?
今天的主题就是unittest,作为标准python中的一个模块,是其它框架和工具的基础,参考资料是它的官方文档:http://docs.python.org/2.7/library/unittest.html和源代码,文档已经写的非常好了,我在这里记录的主要是它的一些重要概念、关键点以及
可能会碰到的一些坑,目的在于对unittest加深理解,而不是停留在泛泛的表面层上。
unittest是一个python版本的junit,junit是java中的单元测试框架,对java的单元测试,有一句话很贴切:Keep the bar green,相信使用eclipse写过java单元测试的都心领神会。unittest实现了很多junit中的概念,比如我们非常熟悉的test case, test
suite等,总之,原理都是相通的,只是用不同的语言表达出来。
在文档的开篇就介绍了unittest中的4个重要的概念:test fixture, test case, test suite, test runner,我觉得只有理解了这几个概念,才能真正的理解单元测试的基本原理,下面就主要围绕这几个概念来展开这篇文章。
首先通过查看unittest的源码,来看一下这几个概念,以及他们之间的关系,他们是如何在一起工作的,其静态类图如下:
相关文章推荐
- float
- Android反编译技术
- 80老翁谈人生(102):从北大“三角地”谈起
- 倾情大奉送--Spark入门实战系列
- margin
- 大型网站架构演变和知识体系
- position
- 轻松实现APP自动检测更新
- 是大法官说
- 用sockets打造自己的Android聊天app(安卓篇)
- 遍历
- python单元测试--深入理解unittest
- git 下如何把另外一个分支的某个文件改动merge 合并到这个分支,而不是把整个分支merge过来
- 熵的来源及相关定义
- 初识ROS机器人操作系统
- 陕西省集训 day4(搜索下)
- 现代操作系统第二章读书笔记(未完)
- Git 如何快速的丢弃/抛弃/回滚本地的所有未stage的改动
- 使用Express开发node.js应用
- 升讯威微信营销系统开发实践:(2)功能设计与架构设计