为了测试目的,我需要模拟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