是否可以让一个Mock对象在调用时返回一个值并在调用时执行一条语句?例如这个:
> mocked_func = Mock(return_value='Returned foo',
side_effect=lambda: print('Side effect executed')
)
> print(mocked_func())
Side effect executed
None
Run Code Online (Sandbox Code Playgroud)
这里的文档似乎有点含糊,但在我看来,side_effect使用 when 时,then被完全忽略,只返回 functionreturn_value的结果(在is的情况下)。side_effectprint()None
由于Python并不真正支持多语句lambda(据我所知,你能做的最好的事情就是将表达式放入一个元组中,但随后将返回整个元组) - 是否可以组合两个参数?
我想避免必须定义一个新函数并将其用作side_effect,我觉得在 a 中声明两者Mock更干净。