如何在实例化时模拟类属性

时间:2019-03-08 14:51:45

标签: python mocking

我有一个对象(例如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()

注意:

我知道最好的方法是将SomeDbHandlerClass A分离,尽管我无法控制Class A的实现。因此,我认为对我来说最好的选择是模拟self.attr2= SomeDbHandler()

感谢您的帮助!

0 个答案:

没有答案
相关问题