模拟XMPP服务器的建议

时间:2011-10-10 19:21:56

标签: tdd mocking xmpp integration-testing

我需要模拟XMPP服务器以进行测试。我目前的目的是运行本地XMPP服务器并在那里绑定我的测试代码,但我想知道是否有人知道已存在的XMPP模拟库?

3 个答案:

答案 0 :(得分:3)

要成功模拟整个XMPP服务器,您基本上最终会得到一个XMPP服务器。我个人认为这是最可靠的整体测试方法,尽管我对自包含的代码使用了更小的更具体的测试。

你可能会发现这本书的章节很有趣,Remko可能是我认识最痴迷的人,它是根据他最近开发客户的经验编写的:http://el-tramo.be/blog/beautiful-xmpp-testing

答案 1 :(得分:3)

这可能在某种程度上取决于您使用的工具,但是在Smack中,您可以创建自己的Connection类,它将用作模拟服务器。这是在Smack的测试用例中完成的。

基本上,您将回复IQ或消息数据包提供给连接,然后通过API进行呼叫。然后返回预设数据包作为结果。您必须考虑的一件事是XMPP的异步特性,并确保您的测试服务器以相同的方式工作。

其他XMPP库可能会提供一些类似的方法来启用单元测试。

另一方面,如果您尝试运行完整的集成测试场景,那么我认为本地服务器是正确的方法。

答案 2 :(得分:1)

只有你拥有的模拟类型 - 由Freeman n co ..搜索这篇文章。

这个想法是你应该只模拟你控制的角色。在这种情况下,XMPP服务器的界面不是您控制的界面。因此,定义您的应用需要的角色(界面)和这是XMPP服务器满意的。

您最终可能会使用更简单的界面 - 例如SendTo(用户,消息)。然后,您需要编写适合XMPP服务器角色的适配器。这件事将处理与您选择的XMPPServer相关的所有怪癖。

这种更简单的界面更易于模拟和修改。 HTH