Ich habe eine ClassFileTransformer
für einen Javaagenten mit ASM. Da er einige Bugs hat, möchte ich einen JUnit-Testfall dafür schreiben. Wie kann ich das tun?
Mit Hilfe von Pseudocode dachte ich in etwa so:
// Have a test class as subject
public static class Subject {
public void doSomething(){...}
}
// Manually load and transform the subject
...?
// Normally execute some now transformed methods of the subject
new Subject().doSomething();
// Check the result of the call (i.e. whether the correct attached methods were called)
Assert.assertTrue(MyClassFileTransformer.wasCalled());
Die Frage ist nun: Wie lade und transformiere ich das Subjekt manuell und bringe die JVM/Classloader dazu, meine manipulierte Version davon zu verwenden? Oder übersehe ich etwas völlig?