Python mock测试static 方法——狸猫换太子

尽管大部分测试框架不直接支持静态方法的测试,但为了确保重构的质量,测试依然重要。本文介绍了如何在Python中对静态方法进行测试,通过使用mock技术,模拟静态方法的行为,解决在测试中遇到的难题,比如静态方法难以操控或执行效率低等问题。灵感来源于CSDN论坛的一个话题。
摘要由CSDN通过智能技术生成


主流的大部分的测试框架貌似都不支持static method,貌似因为静态方法的代码有味道,所以官方故意不支持静态方法测试?il不知道

承认代码可能写的不够好,需要重构,但是测试也是需要的,所以仍然需要静态方法来做重构的保障。

在python中实现静态测试的思路如下:

假设有一个Util类,

class Util:
    @classmethod
    def tai_zi(a, b=''):
        print '太子'
        return '太子'

class View()
    def view(self):
        print Util.tai_zi(1, 'M')


困难在于,我们要测试这个View的view()方法,但是这个view()方法使用了一个关键的static方法,而且有时候这个static方法很难操控,或者执行时间慢,或者带来其他问题等,但是我们又需要测试view(),所以必须绕过去

class UtilTest(MockTestCase):
    @classmethod
    def mock_tai_zi(cls, *args, **kwargs):
        print '狸猫'
        return '狸猫'

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def mock_tai_zi(self):
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值