Зачем издеваться, когда можно заменить объект? - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь понять, почему мне нужно использовать mocks, когда я могу просто заменить объект, который я хочу напрямую смоделировать.

Например, в этом надуманном примере

class Child:
    def get(self):
        return {0 : "SomeDictResult"}

class Root:
    def __init__(self):
        self.child = Child()

    def get_info(self):
        return self.child.get()

def test_get_info(root : Root):
    root.child.get = lambda : {1 : "SomeOtherResult"} # This is where a mock would be

    print(root.get_info())

вместо насмешливый, я заменяю get лямбда-функцией с пользовательским выводом. Зачем мне издеваться, если я мог бы заменить get функцию

...