使用`unittest`来验证是否已调用`exit`函数

时间:2013-04-05 14:37:32

标签: python unit-testing python-2.7 exit

我定义了一个非常简单的配置管理器(解析配置文件并验证它们中是否存在某些键),现在我正在为它编写一些测试。

在配置文件无效的许多情况下,我希望配置处理程序调用{​​{1}}。有没有什么方法可以编写测试来确保调用exit()并继续测试?对于测试环境,我是否可以“模拟”exit函数?

我使用的是Python 2.7和exit

1 个答案:

答案 0 :(得分:1)

sys.exit()引发SystemExit异常,应该由unittest框架捕获。因此,您可以检查是否针对这些测试用例引发了SystemExit

示例,exit_test.py

import sys
import unittest


def func():
    sys.exit()


class MyTest(unittest.TestCase):

    def test_func(self):
        self.assertRaises(SystemExit, func)


if __name__ == "__main__":
    unittest.main()

执行命令

$ python exit_test.py 
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK