【发布时间】:2017-09-25 15:35:58
【问题描述】:
我正在尝试为依赖于系统库的类正确创建模拟。目前,代码在测试时会连接到库的套接字,我正在尝试删除该依赖项。
class A:
SETTING_VARIABLE = "CONFIG_VALUE"
def __init__(self):
self.system_connector = library.open(self.SETTING_VARIABLE)
import A
class B:
INSTANCE_OF_A = A()
当类 A 被实例化时,它使用 SETTING_VARIABLE 连接到系统库,在单元测试期间它不能这样做,并且我的测试套件在测试收集期间失败。我使用的库连接器可以配置为在单元测试模式下运行,但需要传递不同的配置,因此在这种情况下,需要将 SETTING_VARIABLE 实例化为“TEST_VALUE”。
我的测试类 test_B 在尝试连接到系统库时一旦导入 B 就会失败(我已禁用对它的套接字的访问)。如何设置 Python 模拟,以便我可以替换 A 定义的静态变量的值?
我尝试从 test_B 做的一件事:
import A
A.SETTING_VARIABLE = "TEST_VALUE"
这似乎确实有效,但是对于单元测试有更简洁的方法吗?
【问题讨论】:
标签: python unit-testing pytest