JMockit - Geschwindigkeit

Status
Nicht offen für weitere Antworten.

byte

Top Contributor
Hi,

für ein aktuelles Projekt existieren derzeit rund 200 Testmethoden. Die laufen bei mir in etwa 17 Sekunden durch. Wir möchten jetzt eine Mock Library einsetzen, um bestimmte Dinge besser testen zu können. Wir haben uns für JMockit entschieden.

Wenn wir allerdings JMockit in den Classpath aufnehmen und den Java-Agent beim Ausführen der Tests hinzufügen, dann dauern die Tests schon 31 Sekunden, obwohl JMockit nur an einer Stelle verwendet wird.

Das kann doch nicht der Normalzustand sein? Ein nicht wesentlicher Sinn von Mock-Objekten ist ja, dass die Tests schneller durchlaufen (indem man nicht alles implizit mehrfach testet).

Hat jemand eine Idee, wie man die Ausführungsgeschwindigkeit der Tests mit JMockit verbessern kann? Was benutzt Ihr für Mock Libs und wie sind Eure Erfahrungen damit?

Grüße byto
 
M

maki

Gast
Ich nutze JMock, JMockit nutze ich nicht, hab nur darüber gelesen, denke aber auch das Mocks u.a. die Tests schneller machen sollten, nicht langsamer. Hab aber diesbezüglich noch keine negativen Erfahrungen mit JMock gemacht.

IMHO bergen Mocks immer die Gefahr, dass man eine "White Box" testet, diese Tests sind fragil und brechen sobald sich internas der getesteten Klassen ändern, selbst wenn die Schnittstellen gleich bleiben.
 

tfa

Top Contributor
JMock arbeitet mit schnellen Reflection-Proxys und nicht mir Byte-Code-Instrumentation. Daher könnte der Geschwindigkeitsunterschied kommen.
 

mvitz

Top Contributor
...
IMHO bergen Mocks immer die Gefahr, dass man eine "White Box" testet, diese Tests sind fragil und brechen sobald sich internas der getesteten Klassen ändern, selbst wenn die Schnittstellen gleich bleiben.

Genau das Problem hatten wir zuletzt...
aber wie kann man dies im vorhinein umgehen?
 
B

bygones

Gast
Die Mocks sollten so "Dumm" wie möglich gehalten werden imho, zB. vermeide ich es einem Mock zu spezifizieren in welcher Reihenfolge bzw. wie oft Methoden aufgerufen werden sollen.

Lesenswert sind u.a. "xUnit Test Patterns" und diese PDF Datei: http://www.jmock.org/oopsla2004.pdf

jo ;-)

wir nutzen mockito... das was ich bisher gesehen habe hat es mir am besten gefallen ....

oder groovy - das ist sein eigenes Mockingframework :D
 

mvitz

Top Contributor
Ich privat nutze btw. EasyMock (um mal noch einen Kandidaten ins Spiel zu bringen ;)) auf der Arbeit nutzen wir auch JMock

@maki

Danke. Link werde ich gleich lesen und das xUnit Buch steht auch im Regal ;D
 
G

Gelöschtes Mitglied 5909

Gast
ich kenne eigentlich nur EasyMock, PowerMock und Moquito, wobei ich da auch noch nicht viel Erfahrung gesamelt hab.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
T Geschwindigkeit beim Generieren erhöhen? Allgemeine Java-Themen 7
S Geschwindigkeit HashMap oder .getParent Allgemeine Java-Themen 5
B Verzeichnis durchsuchen geschwindigkeit optimieren Allgemeine Java-Themen 6
R Parser: Datei auslesen, Datei erstellen - Geschwindigkeit Allgemeine Java-Themen 16
G java spiel (geschwindigkeit) Allgemeine Java-Themen 37
F Geschwindigkeit messen Allgemeine Java-Themen 7
E Geschwindigkeit static Allgemeine Java-Themen 6
O RXTX Geschwindigkeit? Codebeispiel dabei. Allgemeine Java-Themen 21
P Geschwindigkeit von Java GUIs Allgemeine Java-Themen 45
J Http/Https Geschwindigkeit Allgemeine Java-Themen 14
B java geschwindigkeit Allgemeine Java-Themen 16
O Geschwindigkeit Fortran und Java Allgemeine Java-Themen 11
J JCopy & Geschwindigkeit? Allgemeine Java-Themen 4
A Geschwindigkeit Java unter Linux Allgemeine Java-Themen 9
M Geschwindigkeit RXTX JAVA Allgemeine Java-Themen 3
N Performance-Test (Geschwindigkeit von Methoden vergleichen)? Allgemeine Java-Themen 4
P Geschwindigkeit und Genauigkeit bei Zeitmessung Allgemeine Java-Themen 13
T Geschwindigkeit bei Polygonen und BufferedImage Allgemeine Java-Themen 9
R Geschwindigkeit herausfinden Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben