tonykang22 / study

0 stars 0 forks source link

[The JAVA, 코드 조작] 2부. 바이트코드 조작 #21

Open tonykang22 opened 2 years ago

tonykang22 commented 2 years ago

2부. 바이트 코드 조작

1. 코드 커버리지는 어떻게 측정할까?


2. 모자에서 토끼를 꺼내는 마술

public class Moja {

    public String pullOut() {
        return "";
    }
}


public class Masulsa {

    public static void main(String[] args) {
        System.out.println(new Moja().pullOut());
    }
}



3. Javaagent 실습


public class MasulsaAgent {

    public static void premain(String agentArgs, Instrumentation inst) { 
        new AgentBuilder.Default()
                .type(ElementMatchers.any())
                .transform((builder, typeDescription, classLoader, javaModule) -> builder.method(named("pullOut")).intercept(FixedValue.value("Rabbit!"))).installOn(inst);
    } 
}


4. 바이트코드 조작 정리