相关疑难解决方法(0)

unittest.Mock - 结合 return_value 和 side_effect

是否可以让一个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更干净。

python unit-testing mocking

2
推荐指数
1
解决办法
5677
查看次数

标签 统计

mocking ×1

python ×1

unit-testing ×1