Skip to content

wangjie-fourth/MockSystem

Repository files navigation

Coverage Status Github Workflow Build Status GitHub repo size GitHub issues GitHub Contributors GitHub Stars GitHub Forks

MockSystem

使用javaAgent,动态的Mock某些方法的方法。

java -javaagent:./mocksystem-agent/target/mocksystem-agent-1.0.jar -jar ./mocksystem-test-application/target/mocksystem-test-application-1.0-jar-with-dependencies.jar
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5055 -javaagent:./mocksystem-agent/target/mocksystem-agent-1.0.0.jar -jar ./mocksystem-test-application/target/mocksystem-test-application-1.0.0-jar-with-dependencies.jar

一些思路: 提供一个页面,来配置这些mock返回数据; 被mock的应用只需要加上javaagent启动后,就可以实现自动mock接口返回值了。

1、如何让别人配置后,本地的javaagent来修改这个类的字节码? 本地修改mock信息后,触发新版本的agent打包,将修改的信息包含进去,并生成新agent的jar包。 然后目标机器来重新加载这个运行的agent包。

未完事项: 1、动态attach需要给一个命令行执行的例子,现在缺少tool.jar 将tools.jar塞入项目解决

mvn install:install-file -Dfile=D:/software/java/jdk8u322-b06/lib/tools.jar
 -DgroupId=com.sun
 -DartifactId=tools
 -Dversion=1.8.0
 -Dpackaging=jar
 -DlocalRepositoryPath=D:/project/myself/MockSystem/attacher/my-repo

2、运行时加载javaagent的测试

3、test-appliction需要配置化的运行时间

4、看mockito是如何实现自动mock的 普通方法: mockito是通过生成子类做代理解决的 powerMock: 通过修改字节码的方式实现的.类是由一个新的ClassLoad加载的

5、可以参考jmockit的实现方式 修改本地字节码之后,启动一个agent来加载修改后的字节码文件

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages