我试图让模拟对象根据给定的输入返回某些值。我查了一些关于 SO 的例子,但由于某种原因我仍然无法让它工作。这就是我现在所拥有的。
class EmailChecker():
def is_email_correct(email):
some regex to determine if email is valid, returns either True or False
def my_side_effect(**args):
if args[0] == '1':
return True
else:
return False
myMock = mock.patch.object(EmailChecker, 'is_email_correct', side_effect=my_side_effect)
但它似乎不起作用。我在这里缺少什么?
Use patch.object
作为装饰器或上下文管理器,如以下代码所示:
>>> class EmailChecker():
... def is_email_correct(self, email):
... pass
...
>>> def my_side_effect(*args):
... if args[0] == '1':
... return True
... else:
... return False
...
>>> with mock.patch.object(EmailChecker, 'is_email_correct', side_effect=my_side_effect):
... checker = EmailChecker()
... print(checker.is_email_correct('1'))
... print(checker.is_email_correct('2'))
...
True
False
NOTE: 已替换**args
with *args
。添加缺失self
论证is_email_correct
method.
my_side_effect
可以简化如下:
def my_side_effect(email):
return email == '1'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)