爲了測試目的,我需要模擬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. 嘲笑SAP Idoc服務器
- 3. SoapUI:嘲笑服務
- 4. 嘲笑web服務
- 5. 嘲笑Clojure協議
- 6. Spock - 嘲笑外部服務
- 7. nock嘲笑肥皂服務
- 8. SoapUI嘲笑異步服務
- 9. 嘲笑服務渠道
- 10. 嘲笑一個MySQL服務器與Java
- 11. 在GAE開發服務器上嘲笑?
- 12. 構建嘲笑
- 13. 嘲笑angular.js中的自定義服務
- 14. 茉莉花測試的嘲笑服務?
- 15. 使用Rspec測試和嘲笑服務
- 16. Mockito - 在嘲笑服務時拋出nullpointerException
- 17. 工具輕鬆地嘲笑RESTful服務
- 18. Jasmine JSON燈具VS服務嘲笑
- 19. 如何嘲笑休息服務
- 20. 角度防止嘲笑$ http服務
- 21. 茉莉花嘲笑AngularJS服務
- 22. 嘲笑web服務調用...有時
- 23. 在單元測試中嘲笑服務
- 24. 嘲笑還是不嘲笑?
- 25. 茉莉花和角嘲笑:嘲笑處理本地存儲的服務
- 26. 我該如何嘲笑我的會議?
- 27. 嘲笑使用茉莉花的服務器的呼叫
- 28. 如何嘲笑Web服務調用,而不通過嘲笑類作爲參數
- 29. 乾淨地嘲笑Django Unittests的遠程服務器和API
- 30. 如何測試茉莉花嘲笑服務的控制器
我不知道這是否有用,但在書[面向生長對象的軟件,由測試引導](http://www.growing-object-oriented-software.com/)上,作者舉了一個例子測試使用XMPP的應用程序,他們選擇啓動OpenFire服務器,而不是模擬它。如果可以的話,可以獲得一份副本,因爲他們也談論了很多關於如何測試異步應用程序......而且它非常**,**非常好。 – Augusto