Python 的unittest 初体验

本文介绍了使用Python内置的unittest框架进行单元测试的方法。通过具体示例展示了如何编写测试用例,包括设置、验证及清理过程,并涉及随机模块的测试应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学了几天的Python,几天终于开始学测试,跟我的实习工作有点关系 了


应为unittest是集成在Python里面的,就像Java的Junit,不需要安装第三方库不像nose


上代码:

主要的:

# -*- coding: utf8 -*-
import random
import unittest
#引进来两个被测的类,一个是进行一些递归计算,一个纯粹打印个乘法表
import beingtest_test,BeingTest2
class TestSequenceFunctions(unittest.TestCase):

    def setUp(self):
        self.i = 1
        self.seq = range(10)
        self.b1 = beingtest_test.BeingTest()
        print 'begin testing %d' % self.i

    def test_shuffle(self):
        # make sure the shuffled sequence does not lose any elements
        random.shuffle(self.seq)
        print self.seq
        self.seq.sort()
        print self.seq
        self.assertEqual(self.seq, range(10))

        # should raise an exception for an immutable sequence
        self.assertRaises(TypeError, random.shuffle, (1,2,3))

    def test_choice(self):
        element = random.choice(self.seq)
        self.assertTrue(element in self.seq)

    def test_sample(self):
        with self.assertRaises(ValueError):
            random.sample(self.seq, 20)
        for element in random.sample(self.seq, 5):
            self.assertTrue(element in self.seq)
    def test_fib(self):
        self.assertEqual(self.b1.fib(3), 3)
    def test_fac(self):
        self.assertEqual(self.b1.fac(3), 6)
    #退出清理工作  
    def tearDown(self):
        self.i+=1
        print 'finish testing!!',self.i
        
class Test2(unittest.TestCase):
    def setUp(self):
        self.b2 = BeingTest2.num2test()
    #测试的函数必须用test开头
    def testnum2test(self):
        self.b2.print_Multiplication_table()
    #这个函数在测试的时候不会执行
    def te_stnum2test(self):
        self.b2.print_Multiplication_table()
    
if __name__ == '__main__':
    #unittest.main()
    suite1 =unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions)
    suite2 =unittest.TestLoader().loadTestsFromTestCase(Test2)
    suite = unittest.TestSuite([suite1, suite2])
    unittest.TextTestRunner(verbosity=2).run(suite)


简单

计算的类:

# -*- coding: cp936 -*-
class BeingTest (object):
    def __init__(self):
        pass
    def fib(self,x):
        if x<2:return 1
        #python 里面不能直接调用本身的函数
        return (self.fib(x-2) +self.fib(x-1))
    def fac(self,x):
        print 'i am from beTest',x
        if x<2:return 1
        return (x*self.fac(x-1))
    def sum_(self,x):
        if x<2:return 1
        return x+self.sum_(x-1)
    

打印的类:

class num2test(object):
    def print_Multiplication_table(self):
        for i in range(1,10):
            for j  in range(1,i+1):
                print ' %s * %s = %s ' % (i,j,i*j),
                if i == j:
                    print '\n'


还是比较简单的。



差点忘了附上结果图



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值