Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Wie ist Mockitos Reset -Methode mit anderen spöttischen Bibliotheken verglichen?


Wie ist Mockitos Reset -Methode mit anderen spöttischen Bibliotheken verglichen?


Mockitos "reset ()` `-Methode ist eine Funktion, mit der Sie ein Mock -Objekt zurücksetzen können, damit sie wiederverwendet werden kann. Die Verwendung von Mockitoentwicklern und Benutzern wird jedoch im Allgemeinen entmutigt, da es auf schlecht gestaltete Tests oder Code hinweisen kann, die übermäßig komplex und schwierig zu testen sind [7] [9]. Stattdessen besteht der empfohlene Ansatz darin, neue Mocks für jede Testmethode zu erstellen, um die Unabhängigkeit und Klarheit beim Test zu gewährleisten [7] [9].

Vergleich mit anderen spöttischen Bibliotheken

1. JMOCK2: Im Gegensatz zu Mockito verwendet JMOCK2 einen Kontext, um Erwartungen und Mock -Informationen zu verwalten, die für jede Testmethode wieder aufgebaut werden. Dies bedeutet, dass JMOCK2 keinen expliziten Reset benötigt, wie es Mockito tut [10]. Der Ansatz von JMOCK2 hilft bei der Aufrechterhaltung der Testisolation, ohne die Mocke manuell zurücksetzen zu müssen.

2. EASYMOCK: EASYMOCK erfordert typischerweise keine Reset -Methode. Es ist so konzipiert, dass es für jeden Test neue Mock -Objekte erstellt, ähnlich der empfohlenen Praxis mit Mockito. Szczepan Faber, ein Mockito -Entwickler, erwähnt, dass er während der Verwendung von Easymock nie eine Reset -Funktion benötigt [8].

3.. Mockito gegen andere Bibliotheken: Im Allgemeinen fördern andere spöttische Bibliotheken wie JMOCK2 und EASYMOCK einen saubereren Testansatz, indem er entweder automatisch den Scheinzustand verwaltet oder die Erstellung neuer Mocks für jeden Test fördert. Mockitos "reset ()` -Methode ist eher eine Ausnahme als die Norm in Verspottungsrahmen.

Best Practices

- Vermeiden Sie die Verwendung von `reset ()`: Sofern nicht unbedingt erforderlich ist, z. Konzentrieren Sie sich stattdessen darauf, einfache, fokussierte Tests mit neuen Mocks für jedes Szenario zu erstellen [7] [9].

- Verwenden Sie `clearInvocations ()`: Wenn Sie Wechselwirkungen ohne Zurücksetzen von Stubbing löschen müssen, verwenden Sie `clearInvocations ()`. Mit dieser Methode können Sie Stubbing bei der Löschen von aufgezeichneten Interaktionen beibehalten, was in bestimmten Szenarien nützlich sein kann [5].

- Refactor -Code für Testbarkeit: Wenn Sie feststellen, dass Sie häufig "reset ()` verwenden müssen, kann dies darauf hinweisen, dass Ihr Code von Refactoring profitieren könnte, um ihn nachweisbarer zu machen. Dies könnte das Abbau komplexer Methoden oder die Verbesserung der Abhängigkeitsinjektion beinhalten [9].

Zusammenfassend lässt sich sagen, dass Mockito eine "Reset ()" -Methode bereitstellt, seine Verwendung im Allgemeinen entmutigt wird, neue Mocks für jeden Test zu erstellen. Andere verspottete Bibliotheken fördern häufig ähnliche Praktiken und betonen saubere und unabhängige Tests über das komplexe Scheinmanagement.

Zitate:
[1] https://www.tutorialspoint.com/mockito/mockito_resetting_mock.htm
[2] https://groups.google.com/g/mockito/c/y_ihdc8lx_m
[3] https://www.vogella.com/tutorials/mockito/article.html
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.reset
[5] https://www.toptal.com/java/a-guide-to-everyday-mockito
[6] https://www.jrebel.com/blog/mock-unit-testing-with-mockito
[7] https://stackoverflow.com/questions/34412106/APIPITURE-Use-Use-of-mockito-reset
[8] https://groups.google.com/g/mockito/c/_vxg33tlzl8
[9] https://softwareEngineering.stackexchange.com/questions/188299/is-this-an-upiturtset-of-mockitos-reset-method
[10] https://stackoverflow.com/questions/18164123/how-to-clean-up-mocks-in-pring-tests-when-using-mockito