我试过了
from mock import Mock
import __builtin__
__builtin__.print = Mock()
但这会引发语法错误。我也试过像这样修补它
@patch('__builtin__.print')
def test_something_that_performs_lots_of_prints(self, mock_print):
# assert stuff
有什么办法吗?
原文由 aychedee 发布,翻译遵循 CC BY-SA 4.0 许可协议
print
是 python 2.x 中的关键字,将其用作属性会引发 SyntaxError。您可以通过在文件开头使用from __future__ import print_function
来避免这种情况。注意:您不能简单地使用
setattr
,因为您修改的打印函数不会被调用,除非print
语句被禁用。编辑:您还需要
from __future__ import print_function
在每个要修改的文件中print
要使用的函数,否则它将被print
statement.– 屏蔽