fox-mock 是基於Java Agent實現的自測,聯調Mock利器。能解決你的這些問題:
- 開發過程中,依賴了下游多個介面,想跑個單測都必須得等下游把服務部署好
- 聯調過程中,下游某個介面出問題,阻塞了整個流程
- 其他需要Mock方法返回值的場景
最大的優點:
- 無侵入式的Mock解決方案,支援應用啟動前掛載和應用啟動後attach掛載。
- 支援本地檔案mock
- 支援對接配置中心管理mock資料
Github地址:https://github.com/yinjihuan/fox-mock
使用視訊講解:https://www.bilibili.com/video/BV1WS4y1h76q
覺得不錯的記得Star下,下面介紹下具體如何使用。
下載包
下載fox-mock包,fox-mock 支援在 Linux/Unix/Mac 等平臺上一鍵下載,請複製以下內容,並貼上到命令列中,敲 回車 執行即可:
curl -L http://file.cxytiandi.com/install.sh | sh
如果是Windows可以自行通過 http://file.cxytiandi.com/foxmock.zip 進行下載,瀏覽器訪問即可。
下載完成後會在當前目錄有一個foxmock的資料夾,資料夾裡面包含了fox-mock的包。資料夾內容如下:
- fox-mock-agent-${version}.jar 核心程式碼
- fox-mock-boot-jar-with-dependencies.jar attach啟動程式
- agent.properties 配置檔案
- start.sh attach啟動指令碼
agent啟動掛載使用
在伺服器上,需要在程式啟動引數中新增下面的引數:
java -javaagent:fox-mock包的路徑/fox-mock-agent-${version}.jar=foxMockFilePath=mock資料檔案的路徑 -jar 你的jar
如果是在開發工具中,也需要將-javaagent加入到啟動類的vm options中。
接下來就是要建立mock檔案了,mock資料檔案格式為方法的全路徑,格式為com.xx.xxService#getName
在IDEA中直接選中方法單擊右鍵,選中Copy Reference即可,這個就是mock的檔名。
檔案內容就是這個方法要返回的資料,基本型別直接寫內容即可。如果是物件需要用json格式。可以參考fox-mock-example中的mockdata資料夾下的示列。
attach掛載使用
進入到下載好的資料夾中,執行./start.sh,執行之前請確儲存在JAVA_HOME的環境變數。
執行之後會提示選擇要attach的程式ID, 輸入數字按回車即可。然後就完成了mock動作。
attach之前需要將mock的檔案路徑在agent.properties中指定。
總結
我相信大家之前都用過一些mock框架,比如Mockito之類的,確實在自測的過程中有些場景是需要mock資料來完成。比如你用Mockito其實還得寫程式碼來完成mock操作,還需要在專案中依賴jar包。但是fox-mock是不需要依賴jar包的,也不需要編寫程式碼,只需要配置即可。