我有以下功能,可以打印错误消息并关闭程序:
def show_error_message(error_message):
print(error_message)
sys.exit() # Close Program
现在我正在创建unittest,并找到了关于测试sys.exit()
的this topic,但它不起作用。我想是因为它在关闭邮件之前打印出来的。你知道吗
我如何测试这个?Python标准库中有什么东西可以在我的项目中随时使用来完成与此函数相同的任务吗?你知道吗
我想测试的是这样的:
def test_function_runs(self):
"""Basic smoke test: does the function run."""
with self.assertRaises(SystemExit) as cm:
show_error_message('message')
self.assertEqual(cm.exception.code, 1)
我得到的错误是:
Traceback (most recent call last):
File ".test_dynamic_message.py", line 14, in test_function_runs
self.assertEqual(cm.exception.code, 1)
AssertionError: None != 1
我还是python新手,希望有人能帮我。
谢谢
异常的属性可以是代码、消息、参数等等。你知道吗
在这种情况下,是代码错了。您的测试是正确的,无需更改。你知道吗
已成功退出的内容(返回代码0):
要将错误消息打印到stderr并以失败(返回代码1)退出,您需要:
从the python docs
您正在测试的函数以默认退出代码0退出。
您的测试假设异常中的退出代码为1,而根据文档您应该期望它为
None
。你知道吗相关问题 更多 >
编程相关推荐