关于 tdd:单元测试 xmpp 客户端

unit testing xmpp client

xmpp客户端测试的要点是什么?

我正在使用 JsJac 库编写一个聊天类 XMPP 客户端。现在我需要在不同的服务器信号之后测试我的客户端的行为。例如 - 当服务器向我的客户端发送一些错误时 - 它会触发 ondisconnect 回调。我还应该测试(在单独的测试中)当这个回调触发时 - 满足某些条件。

问题是我应该在任何测试中连接到真实服务器还是可以为它编写一些模拟?

我可以用这种方式模拟服务器消息(CoffeeScript 代码):

1
2
error = JSJaCError '503', 'cancel', 'service-unavailable'
xmpp._handleEvent 'onerror', error

但问题是 xmpp 对象应该处于连接状态才能执行此操作。


对于单元测试,您不应连接到真实服务器 - 使用测试替身,例如模拟服务器。您还可以编写一些使用真实服务器的集成测试,以确保您正确连接到它,等等。