使用打印语句进行模拟测试 try/except
Mock testing try/except with print statements
我目前正在为我的 Python2 脚本编写单元测试。我在编写捕获 sys.exit 和打印语句以验证异常的测试用例时遇到问题。任何帮助将不胜感激。
except ParseError, e:
if len(self.args.password) == 0:
print('Some Message')
print 'Login response error'
sys.exit(1)
您可以模拟系统调用并对它们进行断言。
例如,您可以在测试中修补 sys.exit 方法,然后断言它的调用方式如下:
@patch('sys.exit')
def test_whatever(exit_mock):
// force the exception
assert exit_mock.call_count == 1
对于 print 语句,您可以模拟 sys.stdout
调用。 Python cookbook 书中有一个非常简洁的例子,这里就不复制粘贴了。
我目前正在为我的 Python2 脚本编写单元测试。我在编写捕获 sys.exit 和打印语句以验证异常的测试用例时遇到问题。任何帮助将不胜感激。
except ParseError, e:
if len(self.args.password) == 0:
print('Some Message')
print 'Login response error'
sys.exit(1)
您可以模拟系统调用并对它们进行断言。
例如,您可以在测试中修补 sys.exit 方法,然后断言它的调用方式如下:
@patch('sys.exit')
def test_whatever(exit_mock):
// force the exception
assert exit_mock.call_count == 1
对于 print 语句,您可以模拟 sys.stdout
调用。 Python cookbook 书中有一个非常简洁的例子,这里就不复制粘贴了。