为 sys.exit 创建单元测试

sam*_*sam 3 python unit-testing

我有一个简单的python函数。

def test():
    print "test"
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

我正在使用 python 2.6。如何为此功能创建单元测试?这是因为 sys.exit 可以在 python 2.7 之后的单元测试用例中处理。

谁能让我知道如何为这个简单的代码创建单元测试?

sky*_*ing 5

据我所知,sys.exit2.x. 我能看到的唯一区别是,早些时候sys.exit没有检查它的参数,而是SystemExit无论如何引发了异常(现在它只有在您提供正确的参数时才会引发异常)。

例如,我使用 python 2.6(也称为 2.6.0)尝试了以下操作:

import sys
try:
   sys.exit(1)
except SystemExit(1) as e:
   print repr(e)
Run Code Online (Sandbox Code Playgroud)

它回应了 SystemExit(1,)

所以你的测试应该是这样的:

def test():
    passed = False
    try:
        sys.exit(1)
    except SystemExit as e:
        if e.code == 1:
            passed = True

    assert passed
Run Code Online (Sandbox Code Playgroud)