У меня есть класс данных со многими полями, и мне нужно использовать его в тесте. Поэтому я решил расширить класс и инициализировать его ограниченным количеством полей, необходимых для тестирования. Но это приводит к ошибке при создании тестового класса данных:
self.metrics_provider = TestMetricsProvider(data)
E TypeError: __init__() missing 3 required positional arguments: 'class_name', 'type', and 'score'
Базовый класс данных:
@dataclass
class MetricsProvider:
name: str
class_name: str
type: str
score: str
source: str
location: str = DEFAULT_LOCATION
algorithm: Optional[str] = None
Dataclass в тесте:
@dataclass
class TestMetricsProvider(MetricsProvider):
pass
data = dict(
name="test",
class_name="test_class",
type="test_type"
score="test_score",
source="test_source")
class TestMetrics(unittest.TestCase):
def setUp(self) -> None:
self.metrics_provider = TestMetricsProvider(data)
Определение тестового класса данных, как показано ниже, привело к ошибке: E TypeError: __init__() takes 1 positional argument but 2 were given
@dataclass
class TestMetricsProvider(MetricsProvider):
def __init__(self):
super().__init__()
Как мне правильно создать его в этом случае? А может, надо как-то поиздеваться?