Python中unittest模块做UT(单元测试)使用实例

待测试的类(Widget.py)

# Widget.py
# Python 2.7.6 

class Widget:
  def __init__(self, size = (40,40)):
    self.size = size
  def getSize(self):
    return self.size
  def reSize(self,width,height):
    if width <0 or height < 0:
      raise ValueError, 'illegal size'
    else:
      self.size = (width,height)
      return self.size
  def dispose(self):
    pass 

测试类(Auto.py)

# coding=utf8
# Auto.dy
# Python 2.7.6 

from Widget import Widget #导入测试类模块Widget
import unittest      #导入unittest模块  

class WidgetTestCase(unittest.TestCase):
#让所有执行测试的类都继承于TestCase类,可以将TestCase看成是对特定类进行测试的方法的集合 

  #在setUp()方法中进行测试前的初始化工作。
  def setUp(self):
    self.widget = Widget() 

  #并在tearDown()方法中执行测试后的清除工作,setUp()和tearDown()都是TestCase类中定义的方法。
  def tearDown(self):
    self.widget = None 

  #测试Widget类中getSize方法
  def testgetSize(self):
    print "Test GetSize"
    #对Widget类中getSize()方法的返回值和预期值进行比较,确保两者是相等的,
    #assertEqual()也是TestCase类中定义的方法。
    self.assertEqual(self.widget.getSize(), (40, 40)) 

  #测试Widget类中reSize方法
  def testreSize(self):
    print "Test Resize"
    #对Widget类中reSize()方法的返回值和预期值进行比较,确保两者是相等的。
    #assertEqual()也是TestCase类中定义的方法。
    self.assertEqual(self.widget.reSize(50,100),(50,100)) 

#提供名为suite()的全局方法,PyUnit在执行测试的过程调用suit()方法来确定有多少个测试用例需要被执行,
#可以将TestSuite看成是包含所有测试用例的一个容器。
def suite():
  suite = unittest.TestSuite()
  suite.addTest(WidgetTestCase("testgetSize"))#往此添加需要测试的方法testgetSize()
  suite.addTest(WidgetTestCase("testreSize")) #往此添加需要测试的方法testreSize()
  return suite  

if __name__ == "__main__":
  unittest.main(defaultTest = 'suite') #在主函数中调用全局方法.

测试结果:

D:\Python>python27 Auto.py
Test GetSize
.Test Resize
.
------------------------------
Ran 2 tests in 0.004s 

OK

总结:
1。第一步:先写好测试类
2。第二步:导入unittest模块及测试的类,运用setup()方法做测试前的准备工作,如建立数据库连接,运用teardown()方法做测试后的清除工作,如取消数据库的链接,再对类中的方法逐一做测试。
3。第三步: 写suite()的全局方法,将要测试的方法,一一加入。
测试结果,有几个测试用例就有几个. 最后显示OK,表示通过。

(0)

相关推荐

  • 利用Python中unittest实现简单的单元测试实例详解

    前言 单元测试的重要性就不多说了,可恶的是Python中有太多的单元测试框架和工具,什么unittest, testtools, subunit, coverage, testrepository, nose, mox, mock, fixtures, discover,再加上setuptools, distutils等等这些,先不说如何写单元测试,光是怎么运行单元测试就有N多种方法,再因为它是测试而非功能,是很多人没兴趣触及的东西.但是作为一个优秀的程序员,不仅要写好功能代码,写好测试代码一样

  • Python单元测试框架unittest使用方法讲解

    概述 1.测试脚手架(test fixture) 测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown(). 2.测试案例(test case) 最小的测试单元. 3.测试套件(test suite) 测试案例的集合. 4.测试运行器(test runner) 测试执行的组件. 命令行接口 可以用命令行运行测试模块,测试类以及测试方法. 复制代码 代码如下: python -m unittest test_module1 test_module2 python -m

  • Python中的测试模块unittest和doctest的使用教程

    我要坦白一点.尽管我是一个应用相当广泛的公共域 Python 库的创造者,但在我的模块中引入的单元测试是非常不系统的.实际上,那些测试大部分 是包括在 gnosis.xml.pickle 的 Gnosis Utilities 中的,并由该子软件包(subpackage)的贡献者所编写.我还发现,我下载的绝大多数第三方 Python 包都缺少完备的单元测试集. 不仅如此,Gnosis Utilities 中现有的测试也受困于另一个缺陷:您经常需要在极其大量的细节中去推定期望的输出,以确定测试的成败

  • 对Python的Django框架中的项目进行单元测试的方法

     Python中的单元测试 我们先来回顾一下Python中的单元测试方法. 下面是一个 Python的单元测试简单的例子: 假如我们开发一个除法的功能,有的同学可能觉得很简单,代码是这样的: def division_funtion(x, y): return x / y 但是这样写究竟对还是不对呢,有些同学可以在代码下面这样测试: def division_funtion(x, y): return x / y if __name__ == '__main__': print division

  • 详解Python的单元测试

    如果你听说过"测试驱动开发"(TDD:Test-Driven Development),单元测试就不陌生. 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对函数abs(),我们可以编写出以下几个测试用例: 输入正数,比如1.1.2.0.99,期待返回值与输入相同: 输入负数,比如-1.-1.2.-0.99,期待返回值与输入相反: 输入0,期待返回0: 输入非数值类型,比如None.[].{},期待抛出TypeError. 把上面的测试用例放到一个测试模块

  • python单元测试unittest实例详解

    本文实例讲述了python单元测试unittest用法.分享给大家供大家参考.具体分析如下: 单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而单元测试可以帮助我们很快准确的定位到问题的位置,出现问题的模块和单元.所以这是一件很愉快的事情,因为我们知道其它修改或没有修改的地方仍然是正常工作的,而我们目前的唯一问题就是搞定眼前这个有点问题的"家伙&qu

  • Python中unittest用法实例

    本文实例讲述了Python中unittest的用法,分享给大家供大家参考.具体用法分析如下: 1. unittest module包含了编写运行unittest的功能,自定义的test class都要集成unitest.TestCase类,test method要以test开头,运行顺序根据test method的名字排序,特殊方法: ① setup():每个测试函数运行前运行 ② teardown():每个测试函数运行完后执行 ③ setUpClass():必须使用@classmethod 装

  • Python单元测试框架unittest简明使用实例

    测试步骤 1. 导入unittest模块 import unittest 2. 编写测试的类继承unittest.TestCase class Tester(unittest.TestCase) 3. 编写测试的方法必须以test开头 def test_add(self) def test_sub(self) 4.使用TestCase class提供的方法测试功能点 5.调用unittest.main()方法运行所有以test开头的方法 复制代码 代码如下: if __name__ == '__

  • Python之PyUnit单元测试实例

    本文实例讲述了Python之PyUnit单元测试,与erlang eunit单元测试很像,分享给大家供大家参考.具体方法如下: 1.widget.py文件如下: 复制代码 代码如下: #!/usr/bin/python # Filename:widget.py class Widget: def __init__(self, size = (40, 40)): self.size = size   def getSize(self): return self.size   def resize(

  • 在Python中进行自动化单元测试的教程

    一.软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施.正像软件熵(software entropy)所描述的那样:一个程序从设计很好的状态开始,随着新的功能不断地加入,程序逐渐地失去了原有的结构,最终变成了一团乱麻(其实最初的"很好的状态"得加个问号).测试的目的说起来其实很简单也极具吸引力,那就是写出高质量的软件并解决软件熵这一问题. 可惜的是,软件开发人员很少能在编码

随机推荐