Hallo,
ich würde gerne mit Mock-Objekten arbeiten, verzweifele aber gerade so ein bisschen an der Vielfalt der angebotenen Lösungen. Mit welchen Frameworks habt ihr gute Erfahrungen gemacht?
Danke schon mal im Voraus
Welches Mock-Framework
Ist es in Python nicht einfach genug, das ganz ohne "Rahmenwerk" zu machen?
Wenn du ein `Foo` haben willst, welches beim Aufruf von `bar` eine 42 liefert, dann definiere
und benutze `FooMock()` statt `Foo()`. Okay, sowas nennt man vielleicht eher "Stub" - mir ist nicht immer der Unterschied klar. Willst du stattdessen prüfen, ob `bar` von einem `Foo` mit dem Argument 42 aufgerufen wird, böte sich dies an:
und du baust einen Aufruf von `assert_constract` in deinen Unittest ein.
Ansonsten sieht minimock doch ganz nett aus.
Stefan
Wenn du ein `Foo` haben willst, welches beim Aufruf von `bar` eine 42 liefert, dann definiere
Code: Alles auswählen
class FooMock:
def bar(self): return 42
Code: Alles auswählen
class FooMock:
def bar(self, arg): self.arg = arg
def assert_contract(self): assert self.arg == 42
Ansonsten sieht minimock doch ganz nett aus.
Stefan
So praktiziere ich das bisher. Nur ist es gerade im Zusammenhang mit ORM bisweilen recht aufwändig, entsprechende Strukturen nachzubauen. Ich hatte halt die Hoffnung, daß mir entsprechende Frameworks da einen guten Teil der Arbeit abnehmen könnten (wozu sollten sie sonst gut sein?).sma hat geschrieben:Ist es in Python nicht einfach genug, das ganz ohne "Rahmenwerk" zu machen?
Ich bin zur Zeit bei "mock" stehengeblieben und überlege gerade, wie ich (in einem konkreten Fall) die Tests aufbauen müßte, um die Vorteile des Frameworks nutzen zu können. Vielen Dank aber auch für den Hinweis auf minimock, das werde ich dann mal vergleichend danebenhalten.