推薦一款資料mock框架,無需任何依賴,賊牛逼

架構擺渡人發表於2022-05-08

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包的,也不需要編寫程式碼,只需要配置即可。

相關文章