我试图对一个继承的类进行单元测试,该类的基类实现了 __init_subclass__
方法.代码如下:
quick_test.py
import unittest
from unittest.mock import create_autospec
class Parent():
PROPERTY = NotImplemented
def __init_subclass__(cls, **kwargs):
if cls.PROPERTY is NotImplemented:
raise NotImplementedError("Please implement the `PROPERTY`.")
super().__init_subclass__(**kwargs)
def __init__(self, connection_type="default"):
self.connection_type = connection_type
class Child(Parent):
PROPERTY = "has value"
class ChildNoProp(Parent):
pass
class TestClass(unittest.TestCase):
def test_required_params(self):
mock = create_autospec(Child)
self.assertRaises(NotImplementedError, mock)
if __name__ == '__main__':
unittest.main()
问题是我甚至无法访问测试用例,因为ChildNoProp
个定义在基类中调用__init_subclass__
并引发异常.
是否有一种方法可以用当前的实现对此进行单元测试,或者我应该在__init_subclass__
中放弃错误引发?