fox-mock 是基于JAVA Agent實現(xiàn)的自測,聯(lián)調(diào)Mock利器。能解決你的這些問題:
- 開發(fā)過程中,依賴了下游多個接口,想跑個單測都必須得等下游把服務(wù)部署好
- 聯(lián)調(diào)過程中,下游某個接口出問題,阻塞了整個流程
- 其他需要Mock方法返回值的場景
最大的優(yōu)點:
- 無侵入式的Mock解決方案,支持應(yīng)用啟動前掛載和應(yīng)用啟動后attach掛載。
- 支持本地文件mock
- 支持對接配置中心管理mock數(shù)據(jù)
Github地址:
https://github.com/yinjihuan/fox-mock
覺得不錯的記得Star下,下面介紹下具體如何使用。
下載包
下載fox-mock包,fox-mock 支持在 linux/Unix/mac 等平臺上一鍵下載,請復(fù)制以下內(nèi)容,并粘貼到命令行中,敲 回車 執(zhí)行即可:
curl -L http://file.cxytiandi.com/install.sh | sh
如果是windows可以自行通過
http://file.cxytiandi.com/foxmock.zip 進行下載,瀏覽器訪問即可。
下載完成后會在當前目錄有一個foxmock的文件夾,文件夾里面包含了fox-mock的包。文件夾內(nèi)容如下:
- fox-mock-agent-${version}.jar 核心代碼
- fox-mock-boot-jar-with-dependencies.jar attach啟動程序
- agent.properties 配置文件
- start.sh attach啟動腳本
agent啟動掛載使用
在服務(wù)器上,需要在程序啟動參數(shù)中添加下面的參數(shù):
java -javaagent:fox-mock包的路徑/fox-mock-agent-${version}.jar=foxMockFilePath=mock數(shù)據(jù)文件的路徑 -jar 你的jar
如果是在開發(fā)工具中,也需要將-javaagent加入到啟動類的vm options中。
接下來就是要創(chuàng)建mock文件了,mock數(shù)據(jù)文件格式為方法的全路徑,格式為com.xx.xxService#getName
在IDEA中直接選中方法單擊右鍵,選中Copy Reference即可,這個就是mock的文件名。
文件內(nèi)容就是這個方法要返回的數(shù)據(jù),基本類型直接寫內(nèi)容即可。如果是對象需要用json格式。可以參考fox-mock-example中的mockdata文件夾下的示列。
attach掛載使用
進入到下載好的文件夾中,執(zhí)行./start.sh,執(zhí)行之前請確保存在JAVA_HOME的環(huán)境變量。
執(zhí)行之后會提示選擇要attach的進程ID, 輸入數(shù)字按回車即可。然后就完成了mock動作。
attach之前需要將mock的文件路徑在agent.properties中指定。
總結(jié)
我相信大家之前都用過一些mock框架,比如Mockito之類的,確實在自測的過程中有些場景是需要mock數(shù)據(jù)來完成。比如你用Mockito其實還得寫代碼來完成mock操作,還需要在項目中依賴jar包。但是fox-mock是不需要依賴jar包的,也不需要編寫代碼,只需要配置即可。