Я хочу проверить класс, созданный с параметрами по умолчанию, заменив значение параметра по умолчанию во время модульного тестирования.
Например, я хочу следующую строку (по всему коду)
obj = SomeClass()
Чтобы он выглядел так, как будто его вызывали с параметром
obj = SomeClass(overiden_parameter)
Одним из решений может быть создание простого подкласса:
`` `def OriginalClass (object):
def __init_(some_param="default_value"):
...
`` `
` `` def MockedOriginalClass (OriginalClass):
def __init_():
super(MockedOriginalClass, self).__init__("some_other_value)
...
`` `
Как издеваться/ patch OriginalClass
будет MockedOriginalClass
без кода?Имейте в виду, что я хочу сохранить функциональность исходного класса, единственное, что я хочу изменить, - это параметр по умолчанию __init__
.
Я чувствую, что это очень просто сделать с помощью Mocking,Я просто не совсем понял, как это сделать.
Я узнал об этом вопросе: Python unittest mock: возможно ли смоделировать значение аргументов метода по умолчанию во время теста?
Это очень близко, но я не думаю, что тот же трюк можно применить к методу __init__
.