我目前正在为我的Python2脚本编写单元测试。我在编写一个捕获sys.exit和print语句以验证异常的测试用例时遇到了麻烦。任何帮助将不胜感激。
except ParseError, e:
if len(self.args.password) == 0:
print('Some Message')
print 'Login response error'
sys.exit(1)
答案 0 :(得分:0)
您可以模拟sys调用并对它们进行断言。
例如,您可以在测试中修补sys.exit方法,然后声明它被调用如下:
@patch('sys.exit')
def test_whatever(exit_mock):
// force the exception
assert exit_mock.call_count == 1
对于print语句,您可以模拟sys.stdout
调用。可以在Python cookbook书中找到一个非常简洁的示例,因此我不会将其粘贴到此处。