unittest单元测试框架的最初灵感来自于JUnit,和在其它语言里面的单元测试框架有类似的味道。它支持自动化测试、测试代码的初始化和回收、将测试用例聚合在一起,有独立的测试报告框架。
unittest里有一些重要的面向对象的概念,只有理解了这几个概念才能理解单元测试的基本特征:
Test Case(测试用例):
一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试场景,它是对于特定的输入进行对应的验证。单元测试的本质就在于通过运行这个测试单元,可以对某一个功能进行验证。
Test Suite(测试套件):
一个功能的验证往往需要多个测试用例,可以把多个测试用例集合在一起来执行,这个时候就产生了测试套件的概念。
Test Fixture
The test fixture is everything we need to have in place to exercise the UT。
这个“东西”不单只是数据,同时还包括对被测软件的准备,例如实例化某个被测方法所在的类,准备数据库的ConnectionString等 还有比如测试前准备环境的搭建(Setup),以及测试后环境的还原(tearDown)。
Test Runner
test runner是unittest的一个组成部分,指的是测试的执行,并提供给用户的结果。它可能会使用图形界面,文本界面,或直接返回一个特殊的值来指示执行测试的结果。