2010-08-04 11 views

Respuesta

0

Usé jmockit en pruebas de unidad, esto podría simular cualquier cosa. Ampliando eso, java.lang.instrument.Instrumentation debería funcionar también.

1

Sí, esto es posible, pero no muy sencillo.

El problema con el uso de java.lang.instrument.Instrumentation es que SIEMPRE necesitará utilizar un agente de JVM. Una buena introducción a los agentes de JVM está disponible en http://www.javabeat.net/2012/06/introduction-to-java-agents/.

Sin embargo, dado que las pruebas de su unidad también se ejecutan en un jvm, puede especificar el agente como un argumento de JVM.

Un agente de informes de JVM para lo que quiere hacer, y listo para empaquetar, está disponible en https://github.com/jbellis/jamm. Puedes construirlo con Maven o Ant. Para usarlo, usted lo hace y luego pasa lo siguiente como un argumento JVM cuando se inicia la prueba de unidad o unidad de prueba suite:

-javaagent:<path to>/jamm.jar 

Dentro de las pruebas de unidad, a continuación, puede crear una instancia del MemoryMeter y el uso it:

MemoryMeter meter = new MemoryMeter(); 
meter.measure(object); 
meter.measureDeep(object); 
meter.countChildren(object); 
Cuestiones relacionadas