J'ai senti que la simulation d'objet était plus facile à voir via un patch.

L'histoire de la moquerie pour la méthode de l'objet.

class Foo(object):
    def hello(self, v):
        raise Exception("foo")

Par contre, lorsque vous vous moquez d'un objet, vous pouvez écrire comme suit

foo = Foo()
foo.hello = mock.Mock()
foo.hello.return_value = "yup"

assert foo.hello("bar") == "yup"
foo.hello.assert_called_once_with("bar")

Cependant, je pense qu'il est plus facile de voir si vous l'appelez via patch.

foo = Foo()
with mock.patch.object(foo, "hello") as hello:
    hello.return_value = "yup"

    assert foo.hello("bar") == "yup"
    hello.assert_called_once_with("bar")

Recommended Posts

J'ai senti que la simulation d'objet était plus facile à voir via un patch.
J'ai senti que j'avais porté le code Python en C ++ 98.
Je veux dire qu'il y a un prétraitement des données ~
Une doublure qui formate JSON pour le rendre plus facile à voir
Hypothèse / Vérification (176) Comment créer un manuel plus simple que "Le manuel le plus simple pour les ordinateurs quantiques"
Je souhaite spécifier un fichier qui n'est pas une certaine chaîne de caractères comme cible logrotate, mais est-ce impossible?