我在用python编写单元测试时遇到了一个小问题。我想断言没有不提示用户输入。有许多示例说明如何使用unittest.mock
simulate input,或如何判断是否调用了user-defined object的方法。但是,input
是python的内置方法。
做这件事的最好方法是什么?
我在用python编写单元测试时遇到了一个小问题。我想断言没有不提示用户输入。有许多示例说明如何使用unittest.mock
simulate input,或如何判断是否调用了user-defined object的方法。但是,input
是python的内置方法。
做这件事的最好方法是什么?
通过蛮力测试,它看起来像以下作品:
def foo():
return 7
with patch('builtins.input',return_value='y') as mocked:
foo()
mocked.assert_not_called()
以下内容将使测试失败:
def foo():
input('bar')
return 7
with patch('builtins.input',return_value='y') as mocked:
foo()
mocked.assert_not_called()