[PYTHON] Ich hatte das Gefühl, dass Mock for Object über Patch leichter zu erkennen ist.

Die Geschichte des Scheines für die Methode des Objekts.

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

Wenn Sie sich dagegen über ein Objekt lustig machen, können Sie wie folgt schreiben

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

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

Ich bin jedoch der Meinung, dass es einfacher ist zu sehen, ob Sie es per Patch anwenden.

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

Ich hatte das Gefühl, dass Mock for Object über Patch leichter zu erkennen ist.
Ich hatte das Gefühl, dass ich den Python-Code nach C ++ 98 portiert habe.
Ich möchte sagen, dass es eine Datenvorverarbeitung gibt ~
Ein Liner, der JSON formatiert, um die Anzeige zu vereinfachen
Hypothese / Verifikation (176) Wie man ein Lehrbuch macht, das einfacher ist als "Das einfachste Lehrbuch für Quantencomputer"
Ich möchte eine Datei, die keine bestimmte Zeichenfolge ist, als logrotate Ziel angeben, aber ist es unmöglich?