python_unittest

本文详细介绍了如何使用unittest库编写结构化的大型测试集,包括整数和浮点数测试案例,以及setUp和tearDown方法的使用。通过实例演示了如何验证math库中的product函数的正确性。

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

unittest可以编写结构化的大型且周详的测试集。例如:

import unittest,my_math

class ProductTestCase(unittest.TestCase):

    def testIntegers(self):
        for x in xrange(-10, 10):
            for y in xrange(-10, 10):
                p = my_math.product(x, y)
                self.failUnless(p == x*y,'wrong')
    def testFloats(self):
        for x in xrange(-10, 10):
            for y in xrange(-10, 10):
                x = x/10
               
y = y/10
               
p = my_math.product(x, y)
                self.failUnless(p == x*y, 'error')

    def setUp(self):
        print('begin')
    def tearDown(self):
        print('end')
if __name__ == '__main__':
    unittest.main()

 

#my_math.py

def product(x, y):
    return x*y
    # pass

Unittest.main函数负责实际运行测试。它会实例化所有TestCase的子类,运行所有名字以test开头的方法。另外,如果定义了叫做setUp和tearDown的方法,它们就会在运行每个测试方法之前和之后执行,这样就可以用这些方法为所有的测试提供一般的初始化和清理代码。

如果product方法中内容改为pass,则会出现一下提示:

D:\Python2.7.8\python.exe "D:\Program Files\JetBrains\PyCharm 4.0.4\helpers\pycharm\utrunner.py" D:\Ainy\PythonTest\P1\T1.py::ProductTestCase::testFloats true
Testing started at 21:32 ...
begin


Failure
Traceback (most recent call last):
  File "D:\Ainy\PythonTest\P1\T1.py", line 454, in testFloats
    self.failUnless(p == x*y, 'error')
AssertionError: error


end


Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值