Python 单元测试和unittest模块
fun.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
def fun(x):
return x/2
def fun1(x):
return x/2,x
def fun2(x):
raise Exception
testfun.py,测试fun.py中的函数.
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''https://docs.python.org/3/library/unittest.html'''
import unittest
from fun import fun,fun1,fun2
class Test_fun(unittest.TestCase):
times = 0
def setUp(self):
'''每个测试案例执行前都会执行此方法'''
Test_fun.times += 1
print 'setUp',Test_fun.times
def tearDown(self):
'''每个测试案例执行完成后都会执行此方法'''
Test_fun.times += 1
print 'tearDown',Test_fun.times
def test1(self):
'''以test开头的方法才会进行测试'''
#如果两个值不相等,测试失败
self.assertEqual(4,fun(8)) #self.assertEqual(x,y,[,msg]),msg为测试失败时出现的信息,以下每个函数都有
self.failUnlessEqual(2,2)
#如果表达式结果为False,测试失败
self.assert_(1 < 2,'false')
self.failUnless(2 == 2,'false')
#两个值相等,测试失败
self.assertNotEqual(2,1)
self.failIfEqual(2,1)
#如果可调用对象callable未引发指定异常,说明测试失败。剩余参数将以参数形式传递给callable
self.assertRaises(Exception,fun2,8)
#如果表达为True,测试失败
self.failIf(1==2)
def test2(self):
self.assertEqual(3,fun(6))
def test3(self):
self.assertEqual((4,8),fun1(8))
def est4(self):
'''不以test开头的方法不会自动测试'''
self.assertEqual(4,fun1(8))
if __name__ == '__main__':
unittest.main()
更多信息见https://docs.python.org/3/library/unittest.html
转载请标明出处,原文地址(http://blog.youkuaiyun.com/lis_12/article/details/).
如果觉得本文对您有帮助,请点击顶支持一下,您的支持是我写作最大的动力,谢谢。

本文详细介绍如何使用Python的unittest模块来进行单元测试。通过具体例子演示了setUp和tearDown方法的作用,以及各种断言方法如assertEqual、assertRaises等的使用方式。
1227

被折叠的 条评论
为什么被折叠?



