【发布时间】:2013-10-01 03:26:02
【问题描述】:
我试图让 Mock 对象根据给定的输入返回某些值。我在 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)
但它似乎不起作用。我在这里错过了什么?
【问题讨论】:
-
为什么是
**args而不是*args? -
**args检查关键字参数,*args检查位置参数。正如@falsetru 提到的,你可能想要*args。 -
更新了代码以提供更多上下文
标签: python unit-testing mocking