python中如何进行测试

使用python进行测试也足够简明了

1)doctest
使用doctest是一种类似于命令行尝试的方式,用法很简单,如下

  1. def f(n):
  2. """
  3. >>> f(1)
  4. 1
  5. >>> f(2)
  6. 2
  7. """
  8.     print(n)    
  9. if __name__ == '__main__':
  10.     import doctest
  11.     doctest.testmod()


应该来说是足够简单了,另外还有一种方式doctest.testfile(filename),就是把命令行的方式放在文件里进行测试。

2)unittest
unittest历史悠久,最早可以追溯到上世纪七八十年代了,C++,Java里也都有类似的实现,Python里的实现很简单。
unittest在python里主要的实现方式是TestCase,TestSuite。用法还是例子起步。

     
     
  1. from widget import Widget
  2. import unittest
  3. # 执行测试的类
  4. class WidgetTestCase(unittest.TestCase):
  5.     def setUp(self):
  6.         self.widget = Widget()
  7.     def tearDown(self):
  8.         self.widget.dispose()
  9.         self.widget = None
  10.     def testSize(self):
  11.         self.assertEqual(self.widget.getSize(), (4040))
  12.     def testResize(self):
  13.         self.widget.resize(100100)        
  14.         self.assertEqual(self.widget.getSize(), (100100))        
  15. # 测试
  16. if __name__ == "__main__":
  17.     # 构造测试集
  18.     suite = unittest.TestSuite()
  19.     suite.addTest(WidgetTestCase("testSize"))
  20.     suite.addTest(WidgetTestCase("testResize"))
  21.     
  22.     # 执行测试
  23.     runner = unittest.TextTestRunner()
  24.     runner.run(suite)


简单的说,
1>构造TestCase(测试用例),其中的setup和teardown负责预处理和善后工作。
2>构造测试集,添加用例
3>执行测试

需要说明的是测试方法,在Python中有N多测试函数,主要的有:
     
     
TestCase. assert_ ( expr [ , msg ] ) TestCase. failUnless ( expr [ , msg ] ) TestCase. assertTrue ( expr [ , msg ] )   TestCase. assertEqual ( first , second [ , msg ] )   TestCase. failUnlessEqual ( first , second [ , msg ] )   TestCase. assertNotEqual ( first , second [ , msg ] ) TestCase.failIfEqual(first, second[, msg])  TestCase.assertAlmostEqual(first, second[, places[, msg]])  TestCase.failUnlessAlmostEqual(first, second[, places[, msg]])  TestCase.assertNotAlmostEqual(first, second[, places[, msg]])  TestCase.failIfAlmostEqual(first, second[, places[, msg]])  TestCase.assertRaises(exception, callable, ...)  TestCase.failUnlessRaises(exception, callable, ...)  TestCase.failIf(expr[, msg])  TestCase.assertFalse(expr[, msg])  TestCase.fail([msg]) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值