我想知道如何为try except
在 Python 模块中的函数定义之外定义的块编写 Python 3 单元测试。
想象一下,package/module.py
我有一段代码,例如:
导入操作系统
try:
CONSTANT = os.environ['NOT_EXISTING_KEY']
except KeyError:
CONSTANT = False
finally:
del os
(请不要介意实际代码,我知道我可以os.getenv('NOT_EXISTING_KEY', False)
在这种特定情况下使用,我感兴趣的是真正测试模块中的 try-except 块(函数外部)是否按预期运行。
如何编写一个单元测试来检查package.module.CONSTANT
是否设置为预期值?
在 unittest 文件(我使用 pytest)中,我有类似的内容:
from package.module import CONSTANT
def test_constant_true():
assert CONSTANT == 'expected_value'
测试如果 try 块正确执行,那么 CONSTANT 是否符合预期。
但是,我不知道如何模拟导入机制,以便 try 块中的 os.environ 引发异常,并且我可以测试 CONSTANT 是否设置为 False。
我怎样才能做到这一点?