diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5eac309
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..c80cf2f
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,45 @@
+
+
+// * ObjectTest objectTest=new ObjectTest(); +// * objectTest.setMoney("money-test"); +// * objectTest.setName("name-test"); +// *
+// */ +//// System.out.println(objectTest.toString()); +// +// /** +// * 获取内容如下 +// *+// * name-test +// *
+// */ +// System.out.println(objectTest.getName()); + + Class> dynamicType = new ByteBuddy() + .subclass(Object.class) + .method(ElementMatchers.named("toString")) + .intercept(FixedValue.value("Hello World")) + .make() + .load(ObjectTest.class.getClassLoader()) + .getLoaded(); + + ObjectTest instance = (ObjectTest)dynamicType.newInstance(); + String toString = instance.toString(); + System.out.println(toString); + System.out.println(instance.getClass().getCanonicalName()); + + } +} diff --git a/src/main/java/top/meethigher/mock/instance/annotation/MockInstance.java b/src/main/java/top/meethigher/mock/instance/annotation/MockInstance.java new file mode 100644 index 0000000..fe15ee0 --- /dev/null +++ b/src/main/java/top/meethigher/mock/instance/annotation/MockInstance.java @@ -0,0 +1,15 @@ +package top.meethigher.mock.instance.annotation; + +import java.lang.annotation.*; + +/** + * 针对测试时使用的Mock注解 + * + * @author chenchuancheng + * @since 2022/11/8 16:12 + */ +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.LOCAL_VARIABLE) +public @interface MockInstance { +} diff --git a/src/main/java/top/meethigher/mock/instance/proxy/MockInstanceHandler.java b/src/main/java/top/meethigher/mock/instance/proxy/MockInstanceHandler.java new file mode 100644 index 0000000..1c94028 --- /dev/null +++ b/src/main/java/top/meethigher/mock/instance/proxy/MockInstanceHandler.java @@ -0,0 +1,27 @@ +package top.meethigher.mock.instance.proxy; + + +import net.sf.cglib.proxy.Enhancer; +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; + +public class MockInstanceHandler { + + public