gpt4 book ai didi

python - 如何从打印消息并关闭程序的函数创建单元测试?

转载 作者:行者123 更新时间:2023-11-28 21:38:21 25 4
gpt4 key购买 nike

我有以下打印错误消息并关闭程序的函数:

def show_error_message(error_message):
print(error_message)
sys.exit() # Close Program

现在我正在创建单元测试并找到了 this topic关于测试 sys.exit() 但它不起作用。我想这是因为它在关闭消息之前打印。

我该如何测试呢? 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 还是个新手,所以我希望有人能帮助我。
谢谢

最佳答案

来自 the python docs

If the value is an integer, it specifies the system exit status (passedto C’s exit() function); if it is None, the exit status is zero; if ithas another type (such as a string), the object’s value is printed andthe exit status is one.

您正在测试的函数以默认退出代码 0 退出。
您的测试假定异常中的退出代码为 1,而根据文档您应该期望它为 None

关于python - 如何从打印消息并关闭程序的函数创建单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48413641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com