28 Python 单元测试和unittest模块

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

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/).

如果觉得本文对您有帮助,请点击支持一下,您的支持是我写作最大的动力,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值