假设我使用库的抽象类作为我自己的抽象基类的基础,所以
class LibBaseClass():
some_var = None # In any non-abstract versions of this class, this must be set
def __init__(self):
if some_var is None:
raise ImproperlyConfigured("some_var Not set!")
现在我有自己的基类使用这个类......
class MyBaseClass(LibBaseClass():
some_var = None # Still None, doesn't make sense for this var to be set to anything
def my_additional_method(self):
....
现在当我来测试MyBaseClass时,在setUp()
方法中,我想初始化类,所以:
my_class = MyBaseClass()
但当然这会从库的基类 init ()中引发错误。我正在寻找解决这个问题的最佳方法,但我不确定要嘲笑什么。错误并不重要/不会影响我编写和运行的任何测试,所以我只需要一种回避这个特定错误的方法。
答案 0 :(得分:1)
我认为你有一个设计问题:
some_var = None # In any non-abstract versions of this class, this must be set
some_var = None # Still None, doesn't make sense for this var to be set to anything
这两种说法相互矛盾。 因此,您应该设置some_var或在未设置时停止发送异常。 另外,如果MyBaseClass应该是抽象的,你不应该实例化它。
编辑:
但是,如果您真的知道自己在做什么,可以轻松放弃父__init__
:
MyBaseClass.__init__ = lambda self: None