Mock入门

#关键参数
name:唯一标识
return_value 当被调用时,返回的值(可为函数)
side_effct = 当存在时,return_value不生效。返回side_effect

导入库

from unittest import mock

使用


## mock = mock.Mock(name=name,return_value=xx,side_effect=xx)  

e.g:
1.
class a ():
    def add(self,a,b):
        return a + b
        
        

from xx import a


def test_add():  
  a.add = mock.Mock(return_value=3)  
  # 此时,a.add被调用时,返回的就是return_value的值  
  a.add = mock.Mock(return_value=a.add)  
  #可返回函数(包括本身),相当于没有使用mock  
  a.add = mock.Mock(name = xx,return_value=3,side_effect = 7) 
  #此时返回的事side_effect

@patch快捷使用mock

note:使用@patch,导入的文件,在py层即可,否则容易出错(a.py: import a,不要具体到类或函数)

第一种:mock和函数结合

a.py

def fun1():
    pass

使用

class test():
    @mock.patch('a.fun1')
    def test(self,mockfun1):随意命名
        mockfun1.return_value = 7
        mockfun1.side_effect = xx

第二种:mock和类结合

a.py

class name1():
    def fun1(self):
        pass

使用

class test():
    @mock.path.object(a.name1,'fun1'):
    def test_a(self,传参):
        参数.retur_value
        XXXX参考上

第三种:mock和类,函数的结合

a.py

class name1():
    def func1():
        pass

def fun2():
    pass
class test():
    @mock.patch.object(a.name1,'fun1')
    @mock.patch('a.fun2')
    def test1(self,param1,param2):
        #param1对应 fun2; param2 对应fun1
        pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值