作为开发者,对编写的代码进行单元测试是最基本的
对于python语言来说,其单元测试的利器是pyUnit,这已从Python2.1及更高版本开始提供。
用基本的例子说明unittest的使用方法。
首先是简单的功能。
area.py
classArea:
def__init__(self,width=100,length=100 ) :
self._width=width
self._length=length
efgetwidth(self ) :
returnself._width
def getlength (自) :
returnself._length
efgetarea(self ) :
returnself._width*self._length
defsetwidth(self,width ) :
ifwidth=0:
raiseValueError,' IlleageWidthvalue '
self._width=width
defsetlenth (自,长度) :
iflength=0:
raiseValueError,' IlleageLengthvalue '
self._length=length
ut_area.py
fromareaimportArea
导入单元
classareatestcase (unittest.test case ) :
defsetup(self ) :
self.area=Area (
efteardown(self ) :
self.area=None
deftestarea (自) :
self.assert equal (self.area.getarea (),10000 ) )。
deftestwidth (自) :
self.Area.setwidth(10 )。
self.assert equal (self.area.getwidth (),10 ) )。
预设长度(自) :
self.Area.setLenth(10 ) )。
self.assert equal (self.area.getlength (),10 )。
if__name__=='__main__':
unittest.main (
看看单元测试的结果吧。
单元测试也可以通过以下方法来实现
首先,我们的测试类由unittest.TestCase继承。 如果采用动态测试方法,请为需要测试的每种方法创建测试方法,然后使用assertEqual, 然后,将我们的所有测试放入容器中,最后使用Unittest.textteest
suite=unittest.TestSuite (
suite.addtest (area test case (' testarea ' ) )
suite.addtest (area test case (' test width ' ) )
suite.addtest (area test case (' test length ' ) ) ) ) ) )。
runner=unittest.TextTestRunner ()
runner.run(suite ) ) ) )。
打印' # ' * 80
unittest.main (
我们比较了两种方法,结果是一样的。
以下函数可用于TestCase
官方资料: http://docs.python.org/library/unittest.html