Wednesday, 28 November 2007

unittest模块

unittest模块是用python编写的,其功能与junit一样,都是为了方便单元测试用的测试框架。
unittest模块是从python
2.1引入标准库的。它包含几个类:TestCase,TestSuite,TestResult,TextTestRunner等等。要建立自动测试,
必须创建unittest.TestCase的子类。然后定义一连串的test测试函数。使用assertXXX来下断言。测试成功就ok,测试错误就
Error,测试失败就Fail,共3种状态。比如:



import uniittest


import ysfile #自定义的模块


class TestZDYSFile(unittest.TestCase):


def setUp(self):


self.zd=ysfile.ZDYSFile('ysh1b1.09')




def testGetYear(self):


self.assertEqual(self.zd.getYear(),2005)




def testGetLoca_bz(self):


self.assertEqual(self.zd.getLoca_bz(),4)




class TestPDYSZipFile(unittest.TestCase):


def setUp(self):


self.pd=ysfile.PDYSZipFile('pdysj09.zip')





def testGetCdate(self):


self.assertEqual(self.pd.getCdate(),'20050117')




if __name__ == '__main__':


#unittest.main()




suite = unittest.TestSuite()


suite.addTest(unittest.makeSuite(TestZDYSFile))


suite.addTest(unittest.makeSuite(TestPDYSZipFile))


unittest.TextTestRunner(verbosity=2).run(suite)





unittest.main()是用来调用所有的测试实例,unittest.TestSuite()是用来组合相关的测
试实例的,用addTest方法添加测试实例。setUp和tearDown方法是用来建立必要的测试环境,例如变量,文件等。tearDown进行一些
扫尾工作。


Powered by ScribeFire.

No comments:

My photo
London, United Kingdom
twitter.com/zhengxin

Facebook & Twitter