如何在方法内部模拟变量

时间:2019-04-08 06:13:00

标签: python methods mocking

我想在方法内部模拟变量

class a(object):
    def __init__(self,ip,port,username,password):
        self.__ip=ip
        self.__port=port
        self.__username=username
        self.__password=password
        self.__connected=False

    def connect():
        if self.__connected:
           return RET_SUCCESS

我想在connect()方法内到达return语句购买模拟变量。 在这种情况下,如果我输入self__connected = True,则只有它会到达return语句。如何在方法内部模拟变量?

1 个答案:

答案 0 :(得分:1)

您可以直接设置实例变量。由于您使用的是双下划线,因此可以通过以下方式访问该属性:

instance._a__connected = False

您还可以模拟该方法以直接返回该值:

with patch.object(a, 'connect', return_value=RET_SUCCESS) as mock_method:
    instance = a()
    instance.connect()