mock 成员方法
Mock 类, 返回固定值
|
|
create_autospec 效验参数个数, 返回固定值
上面p.get_fullname()并没有传递参数,但是依然可以工作。如果想要校验参数,则需要用到create_autospec模块替换Mock模块
side_effect, 依次返回指定值
side_effect参数和return_value是相反的。它给mock分配了可替换的结果,覆盖了return_value。简单的说,一个模拟工厂调用将返回
side_effect值,而不是return_value。
根据参数不同,返回不同的值
|
|
抛出异常
|
|
检验是否调用
|
|
mock 静态方法
静态方法和模块方法需要使用patch来mock
在测试方法参数中得到Mock对象
|
|
使用patch.object
|
|
使用with控制作用域
|
mock 链式调用
在web 应用里,我们经常需要mock数据库,而访问数据库时经常是链式调用,看个例子:
有个模块方法,返回数据库中所有指定name的人员,并按age排序
mock掉整个数据库访问:
mock.patch example: