【问题标题】:Suggestions for mocking an XMPP server [closed]模拟 XMPP 服务器的建议 [关闭]
【发布时间】:2011-10-10 19:21:56
【问题描述】:
出于测试目的,我需要模拟 XMPP 服务器。我目前的意图是运行本地 XMPP 服务器并在那里绑定我的测试代码,但我想知道是否有人知道已经存在的 XMPP 模拟库?
【问题讨论】:
标签:
tdd
mocking
xmpp
integration-testing
【解决方案1】:
这可能在某种程度上取决于您使用的工具,但是在 Smack 中,例如,您可以创建自己的 Connection 类,该类将用作模拟服务器。这是在 Smack 的测试用例中完成的。
基本上,您将回复 IQ 或消息数据包输入连接,然后通过 API 进行调用。然后将预设数据包作为结果返回。您必须考虑的一件事是 XMPP 的异步特性,并确保您的测试服务器将以相同的方式工作。
其他 XMPP 库可能会提供一些类似的方法来启用单元测试。
另一方面,如果您尝试运行完整的集成测试场景,那么我认为本地服务器是正确的选择。
【解决方案3】:
只有您拥有的 Mock 类型 - 搜索 Freeman n co. 的这篇文章。
这个想法是你应该只模拟你控制的角色。在这种情况下,XMPP 服务器的接口不是您可以控制的。因此,请定义您的应用需要的角色(接口)并且 XMPP 服务器可以满足该角色(接口)。
您最终可能会得到一个更简单的界面 - 例如。发送到(用户,消息)。然后,您需要编写一个适合 XMPP 服务器角色的适配器。这个东西将处理与您选择 XMPPServer 相关的所有古怪问题。
这个更简单的界面更容易模拟和灵活更改。高温