代码之家  ›  专栏  ›  技术社区  ›  qshng

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

  •  1
  • qshng  · 技术社区  · 6 年前

    我有个东西 Class A )这是实例化另一个连接到远程数据库的类,而我无权访问该数据库。

    我想用 method1 在里面 ,只需要 attr1 函数类的。我怎么能嘲笑 attr2 甲级 所以我可以用 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 甲级 ,尽管我无法控制 . 所以我觉得我最好的选择就是嘲笑 self.attr2= SomeDbHandler() .

    感谢您的帮助!

    1 回复  |  直到 6 年前