我有一个对象(例如Class A
),该对象正在实例化连接到远程数据库的另一个Class,但我无法访问它。
我想在method1
中使用Class A
,它仅需要类的attr1
才能起作用。实例化attr2
时如何模拟Class A
,以便我可以使用ClassA.method1
而不会出错?
from module_a import SomeDbHandler
Class A:
def __init__(self, attr1):
self.attr1= attr1
self.attr2= SomeDbHandler()
def method1(self):
# needs self.attr1 but does not need self.attr2
# some kind of mock or patch?
a=A('attr')
a.method1()
注意:
我知道最好的方法是将SomeDbHandler
和Class A
分离,尽管我无法控制Class A
的实现。因此,我认为对我来说最好的选择是模拟self.attr2= SomeDbHandler()
。
感谢您的帮助!