推迟创建连接,直到您真正做好准备。作为奖励,你可以
init_connection
采用可选的预分配连接,而不是总是按需创建。这使得向完全避免全局连接的方向迁移变得更加容易。
import os
import redis
connection = None
def init_connection(c=None):
global connection
if connection is None:
if c is None:
c = redis.Redis(host=os.environ.get('redishost', ''))
connection = c
...
然后,在您的测试模块中,您可以调用
接口连接
从内部
setupModule
,可以选择像对象一样传入所需的连接
不用修补任何东西。
def setupModule():
init_connection()
# or
# conn = Mock()
# ... configure the mock ...
# init_connection(conn)
class ClassToTest():
__init__(self):
...