爲了測試目的,我需要模擬XMPP服務器。我目前的意圖是運行本地XMPP服務器並綁定我的測試代碼,但是我想知道是否有人知道XMPP模擬庫已經存在?嘲笑XMPP服務器的建議
回答
這可能在某種程度上取決於您使用的工具,但在Smack中,例如,您可以創建自己的Connection類作爲模擬服務器。這是在Smack的測試案例中完成的。
基本上,您將回復IQ或消息數據包提供給連接,然後通過API撥打電話。然後將預設數據包作爲結果返回。你必須考慮的一件事是XMPP的異步特性,並確保你的測試服務器將以同樣的方式工作。
其他XMPP庫可能提供了一些類似的方法來啓用單元測試。
另一方面,如果您正在嘗試運行全面的集成測試場景,那麼我認爲本地服務器是正確的選擇。
要成功地模擬整個XMPP服務器,你基本上最終會得到一個XMPP服務器。我個人認爲這是測試整體的最可靠的方法,但我使用更小的更具體的測試來測試自包含的代碼段。
你會發現這本書的章節有趣的Remko可能是最考驗癡迷的人,我知道,這是寫出了自己最近的經驗開發客戶端:你自己http://el-tramo.be/blog/beautiful-xmpp-testing
有一個讀了這個。 http://martinfowler.com/articles/mocksArentStubs.html特別是「嘲笑和存根之間的區別」這部分將會幫助你確定。我在腦海裏明確地澄清了一些事情 –
只有模擬類型 - 搜索這篇文章由Freeman n co ..
這個想法是,你應該只嘲笑你控制的角色。在這種情況下,XMPP服務器的接口不是您控制的接口。因此,定義您的應用需要的角色(接口)&,這是由XMPP服務器滿足的。
您可能會得到一個更簡單的界面 - 例如, SendTo(用戶,消息)。然後您需要編寫適合XMPP服務器角色的適配器。這件事將處理與您選擇的XMPPServer相關的所有怪癖。
這個更簡單的界面更容易模擬和彈性改變。 HTH
- 1. 嘲笑服務器響應
- 2. SoapUI:嘲笑服務
- 3. 嘲笑web服務
- 4. 嘲笑Clojure協議
- 5. 嘲笑服務渠道
- 6. 嘲笑一個MySQL服務器與Java
- 7. 在GAE開發服務器上嘲笑?
- 8. 構建嘲笑
- 9. Mockito - 在嘲笑服務時拋出nullpointerException
- 10. Jasmine JSON燈具VS服務嘲笑
- 11. 嘲笑web服務調用...有時
- 12. 在單元測試中嘲笑服務
- 13. 如何嘲笑休息服務
- 14. 服務器返回的HTTP響應代碼:400:當嘲笑HttpURLConnection
- 15. 集成測試運行HTTP服務器實例沒有嘲笑?
- 16. 嘲笑HttpPostedFileBase與犀牛嘲笑
- 17. 用犀牛嘲笑嘲笑系列
- 18. 量角器嘲笑類
- 19. 如何在Android中創建服務與XMPP服務器保持Xmpp連接?
- 20. 用笑話表示嘲笑?
- 21. 請建議一個帶有自動帳戶註冊的好XMPP服務器
- 22. 犀牛嘲笑:嘲諷HttpRequestBase.Files
- 23. 嘲諷命令嘲笑
- 24. 嘲笑會員
- 25. 嘲笑異常
- 26. 嘲笑HttpListenerContext
- 27. 嘲笑Java類
- 28. 嘲笑SPServer.Local
- 29. 嘲笑FacesContext
- 30. 嘲笑UIImagePNGRepresentation
我不知道這是否有用,但在書[面向生長對象的軟件,由測試引導](http://www.growing-object-oriented-software.com/)上,作者舉了一個例子測試使用XMPP的應用程序,他們選擇啓動OpenFire服務器,而不是模擬它。如果可以的話,可以獲得一份副本,因爲他們也談論了很多關於如何測試異步應用程序......而且它非常**,**非常好。 – Augusto