Tôi đã triển khai ClassFileTransformer
cho một javaagent bằng ASM. Bởi vì nó có một số lỗi, tôi muốn viết một trường hợp thử nghiệm JUnit cho nó. Làm thế nào để tôi làm điều này?Làm cách nào để kiểm tra ClassFileTransformer/javaagent?
Sử dụng pseudo-code tôi nghĩ dọc theo dòng:
// 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());
Bây giờ câu hỏi là: Làm thế nào để tự tải và chuyển đổi chủ đề và làm cho JVM/Classloader sử dụng phiên bản thao túng của tôi về nó? Hay tôi hoàn toàn bỏ lỡ điều gì đó?