Python支持哪些拼写错误/拼写错误?
不是替代拼写,例如is_dir
vs isdir
,也不是color
vs colour
,而是实际错误拼写的别名,例如proprety
property
}(不支持)。
答案 0 :(得分:8)
从Python 3.5 beta 3开始,unittest.mock对象现在支持assret
代表assert
- 请注意,这不是关键字assert
,而是任何属性与正则表达式assert.*
或assret.*
匹配的模拟对象。
一些解释:
创建模拟对象时,任何属性访问的默认值都是返回新的Mock
,但有一种情况除外:如果属性是assert_called_with
,assert_called_once_with
之一,{ {1}},assert_any_call
和assert_has_calls
,在这种情况下实际运行了一些代码。
问题是如果忘记了确切的名称并使用,例如assert_not_called
,那么代替运行的代码来检查模拟是否被调用,而是返回一个新的模拟,而是测试一个实际进行测试并可能失败。
要解决此问题,assert_called
现在会引发Mock
,如果对以AttributeError
开头的属性进行了访问。
除了assert
,如果对以assert
开头的属性进行访问,Mock
也会引发AttributeError
。
如果您不想要额外保护(assret
和assert
),则可以在创建assret
时使用unsafe=True
。