使用 Jasmine 测试 Web 套接字
Testing Web Sockets with Jasmine
这是一些使用stomp协议为web-socket编写的代码。
function WS(url) {
var ws = new SockJS('/notifications');
this.client = Stomp.over(ws),
this.client.connect('', '', function() {
console.log('Connected');
}, function(error) {
console.log('STOMP protocol error: ', error.headers.message);
});
}
WS.prototype.disconnect = function() {
};
WS.prototype.subscribe = function() {
};
WS.prototype.unSubscribe = function() {
};
WS.prototype.send = function(msg) {
};
我找到了这篇文章,但它需要实际连接到服务器,单元测试 Node.js 和 WebSockets (Socket.io)
我们如何用茉莉花来测试这一点。寻找一种伪造 Web 套接字服务器和触发事件(连接、断开连接等)的方法。我将不胜感激任何示例或有用的链接。
只需模拟函数的所有依赖项,因此在您的情况下,这将是SockJS
和Stomp.over
。
var wsSpy = jasmine.createSpy();
spyOn(window, 'SockJs').andReturn(wsSpy);
var clientSpy = jasmine.createSpy();
spyOne(Stomp, 'over').andReturn(clientSpy)
运行脚本后,您可以测试他们被调用的间谍。要运行回调函数,您可以使用mostRecentCall.args
来查找它们并在测试中调用它们:
var successCallBack = clientSpy.mostRecentCall.args[2];
successCallBack();
var errorCallBack = clientSpy.mostRecentCall.args[3];
errorCallBack();
只是对安德烈亚斯接受答案的更新。根据 http://jasmine.github.io/2.3/introduction.html#section-31,Jasmine 中的语法发生了变化
根据 Jasmine 2.3 的新语法将是:
clientSpy.calls.mostRecent().args
相关文章:
- PHP:Web套接字和html 5
- STOMP web套接字回调不'不起作用
- 将服务器托管的Web应用程序连接到本地Web套接字
- 在 HTML5 和 C# Web 套接字通信之间
- 是否可以在没有 .NET 4.5 主机的情况下使用当前 Web 套接字
- 使用rxjs创建一个可观察的对象,该对象稍后将连接到web套接字
- Web套接字安全URL加密
- 为什么在Web套接字中使用二进制数据
- Node.js/Socket.io 中的 Web 套接字支持,适用于旧版浏览器
- Java 脚本 Web 套接字客户端无法正常工作
- 通过 Web 套接字传递 googlemapsv3
- 如何为每个 Web 套接字仅使用一个数据库连接
- 设置 Web 套接字
- Web套接字在分配给全局变量时不起作用
- 在 Web 应用程序中实现套接字
- 关闭 HTML5 Web 套接字
- 运行 Web 套接字客户端编程
- 在客户端对 Web 套接字进行编程
- 如何对 Web 套接字进行单元测试 - JavaScript
- Web 套接字 DOM 对象检测