25.3. unittest — Unit testing framework

    https://docs.python.org/2/library/unittest.html

    PYTHON单元测试框架是JUnit的PYTHON语言版本,是有Kent Beck 和 Erich Gamma研发的,该python测试框架又叫PyUnit. 相反,JUnit是Kent 的smalltalk测试框架的JAVA版本。这些都是各自语言的标准测试框架。

    unittest支持自动化测试,可以给测试共享setup和shutdown代码,可以将测试组合在一起,并且与报告框架测试分开各自独立。unittest模块提供的类使得在保证测试集的有用性更容易。

    为了达到这一目标,unittest有以下几个感念:

test fixture

    test fixture 代表了在执行一个或多个测试前的准备条件,以及任何与回收有关的操作。这些包括创建临时或代理数据库,目录,或者开启一个服务进程。

test case

    test case 是最小的测试单元。它检验了一个特定输入集合的特别反应。unittest提供了一个基类,TestCase,这将易于创建新的测试用例。

test suit

    测试套集是测试用例,测试套集,或者都有的一个集合。它用于收集一些要执行的测试到一起。

test runner

    test runner是一个组件,他将用例有条理的组合起来,并且将结果输出给用户。runner会用图形接口,文本接口或者返回一些特定值来表明执行测试的结果。

test case和test fixture的概念是由TestCase 和 FunctionTestCase来表示;前者是当创建新的测试时使用,后者是用unittest-driven框架整合存在的测试代码时使用。当创建test fixtures时使用TestCase,setUp() 和 tearDown()方法会被重载进来用于支持fixture的初始化和清理工作。为了一些特定的目的,利用 FunctionTestCase将存在的函数传递给构造器。 当测试运行时,fixture的初始化先运行;如果测试成功,清理方法会在测试执行完后运行,而不考虑测试的输出。

TestCase的每个实例都用来运行一个单例的测试方法,所以每个测试都有一个新的fixture。


TestSuite类会执行 测试套集。这个类将单个测试和测试套集整合在一起;当测试套集执行的时候,所有的测试会直接添加到套集里面,在测试套集里面的测试会运行。


test runner是一个对象,它提供一个方法,run(),它接受 TestCase 或 TestSuit 的对象作为一个参数,并且返回一个结果对象。类 TestResult 提供了结果对象。 默认情况下,unittest 提供了 TextTestRunner 作为test runner来报告结果到标准的错误流。 另外,runner可以为其它的环境使用而不需要继承特定的类。

未完待续

你可能感兴趣的:(25.3. unittest — Unit testing framework)