unitest框架初认识

        Python单元测试框架,有时被称为“PyUnit”,是一种Python语言版本的JUnit,由Kent Beck and Erich Gamma开发的。反过来,JUnit是Kent的Smalltalk测试框架的Java版本。每一个都是它各自语言的事实上的标准单元测试框架。

        unittest支持测试自动化,共享用于测试的设置和关闭代码,将测试聚合到集合中,并从报告框架中独立出来。unittest模块提供了一些类,这些类可以很容易地为一组测试提供这些特性。

为了实现这个目的,unittest支持一些重要的概念:

  • 测试固据:

             测试固具表示执行一个或多个测试所需的准备,以及任何关联清理操作。例如,这可能涉及创建临时或代理数据库、目录或启动服务器进程。

  • 测试用例

             测试用例是最小的测试单元。它检查特定的一组输入的响应。unittest提供一个基类,TestCase,它可以用来创建新的测试用例。

  • 测试套件

   测试套件是测试用例、测试套件或两者的集合。它用于聚合应该一起执行的测试。

  • 测试运行器

   测试运行器是一个组件,它负责协调测试的执行,并为用户提供结果。运行程序可以使用图形界面、文本接口或返回一个特殊值来指示执行测试的结果。

 

   测试用例和测试夹具概念通过TestCase和FunctionTestCase类来支持,前者应该在创建新测试时使用,后者可以在将现有的测试代码与一个单元测试驱动的框架集成时使用。在使用TestCase构建测试设备时,可以覆盖setUp()和tearDown()方法,从而为fixture提供初始化和清理。对于函数testcase,可以将现有的函数传递给构造函数以实现这些目的。在运行测试时,首先运行fixture初始化;如果它成功了,那么不管测试结果如何,清理方法都是在测试执行之后运行的。TestCase的每个实例只会被用于运行一个测试方法,因此为每个测试创建一个新的fixture。

  测试套件由TestSuite类实现。这个类允许对单独的测试和测试套件进行聚合;当这个套件被执行时,所有的测试都直接添加到这个套件中,并且在“子”测试套件中运行。

  一个测试运行器是一个对象,它提供一个单独的方法,run(),它接受一个TestCase或TestSuite对象作为一个参数,并返回一个结果对象。类TestResult是作为结果对象被提供的。unittest提供TextTestRunner作为一个示例测试运行器,它在默认情况下报告标准错误流的测试结果。可以在其他环境(比如图形环境)中实现替代的运行程序,而不需要从特定的类派生。

posted @ 2017-12-29 15:33  小茗同学123  阅读(316)  评论(0编辑  收藏  举报