[python] python单元测试经验总结

本文总结了使用Python进行单元测试的经验,涉及unittest框架,包括测试类的规范、setUp方法等;讲解了mock的运用场景,如模拟函数和对象方法;介绍了coverage工具用于测量代码覆盖率;最后提到了nose工具如何整合所有测试并提供覆盖率报告。通过这些,可以在项目发布时确保单元测试的全面执行。
摘要由CSDN通过智能技术生成

python写单元大多数都会用到unittest和mock,测试代码覆盖率都会用到coverage,最后再用nose把所有的东西都串起来,这样每次出版本,都能把整个项目的单元测试都运行一遍。

Unittest

unittest就不详细介绍了,注意几点:

  • 测试类继承unittest.TestCase
  • 测试类、测试方法名字最好以test开头,很多工具能根据名字来自动运行,很方便
  • 测试类里面的setUp/tearDown会在每个case执行之前/之后执行,setUpClass/tearDownClass加上@classmethod在整个测试类开始和结束的时候执行
  • 测试文件的main函数里面加上unittest.main(),就可以直接用python命令运行了

Mock

单元测试里面比较精髓的就是mock了,介绍几种常见的场景:

1. Mock一个函数。其实有好几种方法,个人比较推荐下面这种,看上去很清晰:

def multiple(a, b):
    return a*b


class TestProducer(unittest.TestCase):
    def setUp(self):
        self.calculator = Calculator()

    @mock.patch('multiple')
    def test_multiple(self, mock_multiple):
        mock_multiple.return_value = 3
        self.assertEqual(multiple(8, 14), 3)

 

2. Mock一个对象里面的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值