我想在方法内部模拟变量
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语句。如何在方法内部模拟变量?
答案 0 :(得分:1)
您可以直接设置实例变量。由于您使用的是双下划线,因此可以通过以下方式访问该属性:
instance._a__connected = False
您还可以模拟该方法以直接返回该值:
with patch.object(a, 'connect', return_value=RET_SUCCESS) as mock_method:
instance = a()
instance.connect()