begann ich die gleiche Art und Weise (Schreiben Mocks von Hand) und jetzt habe ich eingeschaltet fast vollständig EasyMock über.
Ich finde, dass die Verwendung von EasyMock ist in der Regel sowohl schneller als auch flexibler.
In der Regel das erste Mal, ich brauche einen Schein, kann ich es in ein paar Zeilen Code mit EasyMock haben, während von Hand muss ich die erforderliche Schnittstelle implementieren (fairerweise kann dies von einer IDE wie generiert werden IntelliJ) und fügen Sie dann den notwendigen Code hinzu, um die benötigte Antwort zu erzeugen und/oder die Auswirkungen der Aufrufe zu erkennen.
Gut, könnte man sagen, das ist nur eine einmalige Kosten. Das nächste Mal kann ich die handgeschriebene Spottdatei einfach wiederverwenden ... Ich fand das oft nicht der Fall. In einem anderen Test könnte ich eine ähnliche Klasse mit anderem Verhalten brauchen. Z.B. verschiedene Methoden werden aufgerufen, und/oder ein anderes Ergebnis wird erwartet. Ein spezieller Fall ist, wenn erwartet wird, dass der Schein eine Ausnahme in einem Testfall auslöst, aber nicht in einem anderen. Gut, ich kann einige Parameter hinzufügen, die das Verhalten dynamisch steuern. Dann für den nächsten Test einige weitere Parameter, um mehr Verhalten zu steuern ... also habe ich eine immer kompliziertere Scheinimplementierung, die eine Abhängigkeit für immer mehr Komponententests ist - was auch die Gefahr birgt, ältere Tests versehentlich zu unterbrechen.
Im Gegensatz dazu, mit EasyMock kann ich meine Mocks für jeden Test unabhängig konfigurieren. Somit wird das Verhalten innerhalb des Unit-Test-Codes selbst kontrolliert und sichtbar, und es besteht kein Risiko von Nebenwirkungen.
Nicht zu erwähnen, dass mit EasyMock Sie überprüfen können, ob die erforderlichen Methoden in der erforderlichen Reihenfolge aufgerufen werden, wenn Sie (und ich tun das hin und wieder). Die Umsetzung von Hand (vor allem in generischer Form) wäre für den Nacken schmerzhaft, ohne zusätzlichen Nutzen.
Siehe auch http://stackoverflow.com/questions/1717107/why-do-we-need-mocking-frameworks – Finglas