Pyunit测试框架
1. 基本概念
unittest是python自带的单元测试框架,有时候又被称为"PyUnit",是python版本的JUint实现。
该框架的作者是 Kent Beck和Erich Gamma,感谢祖师爷赏饭吃。
在学习使用unittest库之前,我们需要了解一下unittest库的一些重要概念:
-
test fixture: 代表了用例执行前的准备工作和用例执行之后的清理工作。比如在用例执行前创建临时文件和文件夹,又或者启动1个server进程等;
-
test case: 测试用例,这个相信大家都不陌生。是测试的最小单位,一般检查一组输入的响应(输出)是否符合预期。unittest模块提供了TestCase类来帮助我们创建测试用例;
-
test suite: 经常被翻译成"测试套件",也有人称为"测试套",是测试用例或测试套件的集合,一般用来把需要一起执行的用例组合到一起;
-
test runner: 用来执行测试用例并输出测试结果的组件。可以是图形界面或命令行界面;
总之
- test fixture的功能可以理解成是初始化和清理测试数据及环境
- test case是测试用例
- test suite是用例集合
- test runner的作用是运行用例并返回结果
2. 基本用法
我们通过最简单的例子来看一下unittest的基本用法,下面的代码测试了3个python字符串方法,基本上满足了大部分情况下的测试需求
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper