當前位置:
首頁 > 知識 > MockNet:Android 網路介面開發與測試神器

MockNet:Android 網路介面開發與測試神器

MockNet使用指南

English

https://github.com/5A59/MockNet/blob/master/proDocs/README-en.md

框架介紹

MockNet用於快速搭建本地伺服器,方便開發和測試介面。不需要任何伺服器知識,只需要簡單幾行代碼,就可以搭建一個本地伺服器。不需要更改項目中網路訪問代碼就可以進行介面測試,可以和後台介面同步開發甚至先於後台介面進行開發。

下載

Gradle

Maven

jar包下載mocknet_1_0_0.jar

https://github.com/5A59/MockNet/blob/master/jar/mocknet_1_0_0.jar

使用方法

可參考demo

https://github.com/5A59/MockNet/blob/master/demo/src/main/java/com/zy/demo/MainActivity.java

具體使用步驟如下:

0. 修改訪問 ip

修改網路訪問地址或ip為本地 ip (127.0.0.1:port 或 localhost:port 或 本地具體的ip)。

1. 初始化

2. 添加對請求的處理

MockNet中,對每一個請求及其響應稱為一個Connection,具體對應的類是MockConnection。項目中提供了多種添加MockConnection的方法,如下:

通過MockConnectionFactory構建一個MockConnection,createGeneralConnection(String url, String body)會創建一個處理GET請求的MockConnection,並返回body,默認Content-Type是"text/plain"。

通過MockConnectionFactory構建一個MockConnection,createGeneralConnection(String method, String url, String body)會創建一個處理method指定的請求的MockConnection,並返回body,默認Content-Type是 "text/plain"。

添加返回json的請求處理。通過 MockConnectionFactory 構建一個 MockConnection,createGeneralConnection(String method, String url, String contentType, String body) 會創建一個處理 method 指定的請求的 MockConnection,並返回 body。

自己構建 MockConnection。通過MockConnection.Builder來創建MockConnection,添加自定義的返回信息。

3. 啟動服務

4. 關閉服務

5. 鏈式調用

以上方法可以用鏈式調用來寫,更方便一些。

進階使用

1. 自定義 MockConnection 的使用

通過MockConnection.Builder生成Builder,並通過Builder相關方法構建MockConnection。Builder常用的方法可以參看文檔:Builder。

2. 隨機對請求做出響應

MockNet內部通過url和method(GET,POST等)來對請求做出區分,在addConnection時如果添加了相同的url和method的MockConnection,會通過IConnectionSelector來選擇其中之一進行返回,默認使用RandomSelector隨機返回。可以通過實現IConnectionSelector介面並通過MockNet.setSelector()設置返回規則。

3. Log 設置

默認對每個MockConnection都會輸出Log以幫助調試,如果想關閉Log,可以在構建MockConnection時設置isLog(false)。

MockNet的Log輸出是由Logger和Printer完成的,默認設置了AndroidPrinter和JavaPrinter,如果想自定義Log,可以實現Printer介面,並調用Logger.init(yourPrinter)設置,但是要在調用了MockConnection.create()之後,否則設置會被覆蓋為默認設置。

4. 自定義Handler對請求響應進行處理

MockNet中對Request和Response的處理採用了責任鏈模式(具體可查看整體架構中的介紹),通過添加Handler增加處理環節,框架自帶的Handler有BlockHandler,LogHandler,VerifyHeaderHandler,VerifyParamHandler,ConnectionHandler。

如果想增加自己的處理環節,請實現Handler介面,並通過MockNet.addHandler(Handler h)來設置。具體實現方法可參照框架默認實現的Handler代碼。

5. 支持 https

支持https可以通過下面代碼來開啟:

6. 動態處理數據

為了簡化使用方法和加快開發速度,默認只支持返回靜態數據,暫時沒有對數據進行動態處理。如果想動態處理請求數據,可以繼承RequestExecutor介面並實現execute方法。

在execute方法中對請求進行動態處理,並創建Reponse返回。之後通過Server構造函數構造Server對象並傳入實現RequestExecutor介面的類對象。

具體可以參考MockRequestExecutor的實現以及Server構造函數。

整體架構簡析

整體架構可以分為兩層,server層和application層。

server層主要做的是socket通信以及Request和Response的解析,解析結果會傳入RequestExecutor中做處理。

application層主要是對request的處理和對response的生成,MockRequestExecutor實現了RequestExecutor介面,其中主要通過責任鏈模式來對Request處理。

其他

有關項目bug反饋或者希望項目增加什麼功能或者單純想和我交流,歡迎郵件交流或者添加issue。

文章來源:

http://www.tuicool.com/articles/ZnIrUzq

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 優才學院 的精彩文章:

端午五美送福利 你會追哪一個?
扎克伯格2017哈佛畢業演講:創建一個所有人都有使命感的世界!附演講全文翻譯
當我們在談論技術時,技術的本質和價值究竟是什麼?
AI時代,金融業將大量招聘大數據工程師?
必知的 15 個jQuery小技巧

TAG:優才學院 |

您可能感興趣

BCH應用開發的門戶網站:developer.bitcoin.com
HoloLens開發者體驗報告:Magic Leap One確實比HoloLens好
無人機開發商PrecisionHawk收購Droners、AirVid,建造行業專才網路
Core開發者眼鏡蛇Cobra公開打臉 Blockstream
微軟收購VR遊戲《The Mage』s Tale》開發商inXile Entertainment
安卓開發中的Model-View-Presenter
Windows 10內測版新API介面暗示Surface Phone仍在開發
Justin Timberlake 著用未公開發售「Air Higher」Air Jordan 3 Sample
Mixed Reality Toolkit-Unity開發系列—Sharing模塊
HoloLens開發者:Magic Leap One確實比HoloLens好
Mozilla發布Firefox Reality WebVR開發者指南
谷歌開發新系統Fuchsia 計劃取代Android和Chrome OS
望城經濟技術開發區概況Wangcheng Economy and Technology Development Zone
Realtek藉助Cadence Innovus成功開發DTV SoC解決方案
TensorFlow開發者峰會:重磅發布TensorFlow.js
Cadence Innovus助力Realtek成功開發DTV SoC解決方案
使用 Visual Studio Code 搭建 C/C+開發和調試環境
Kanye West 與 Kid Cudi 合作專輯《Kids See Ghost》試聽會周邊商品公開發售
Mozilla推出開源瀏覽器Firefox Reality,專為VR一體機開發
Android Things OS 開發者預覽版8發布!