Node.js 是否可以使用Mocha测试socket.io应用程序

Node.js 是否可以使用Mocha测试socket.io应用程序,node.js,socket.io,mocha.js,Node.js,Socket.io,Mocha.js,我有一个Node.js和Socket.io服务器。所以我想用Mocha编写测试来改进开发。我在谷歌上搜索了很多关于用Mocha测试socket.io服务器的信息,我只找到了 但在Mocha的测试目录下有服务器和测试,它们都是从Mocha开始的,当时我已经有了工作服务器,只想测试它 所以我写了下一个代码: var assert = require("assert"), should = require('should'), io = require('socke

我有一个Node.js和Socket.io服务器。所以我想用Mocha编写测试来改进开发。我在谷歌上搜索了很多关于用Mocha测试socket.io服务器的信息,我只找到了

但在Mocha的测试目录下有服务器和测试,它们都是从Mocha开始的,当时我已经有了工作服务器,只想测试它

所以我写了下一个代码:



    var assert = require("assert"),
      should = require('should'),
      io = require('socket.io-client'),
      socketURL = 'http://localhost:3102',
      options ={
      transports: ['websocket'],
      'force new connection': true,
      'reconnection delay' : 0,
      'reopen delay' : 0
      };
    describe('Server', function(){
      var socket;
      beforeEach(function(done) {
        // Setup
        console.log('Establishing connection');
        socket = io.connect(socketURL, options);

        socket.on('connect', function() {
          console.log('worked...');
          done();
        });
    });
    ...
      it('should receive messages', function(done){
        socket.on('message', function(data){
          console.log('received');
          done();
        });
    ...
    })

结果是:



    Server
    Establishing connection
        1) "before each" hook

      0 passing (2s)
      1 failing

      1) Server "before each" hook:
         Error: timeout of 2000ms exceeded
          at null. (\npm\node_modules\mocha\lib\runnable.js:139:19)
          at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

我已经检查了服务器的日志,但没有连接。。没有什么。它甚至没有尝试连接到服务器


所以我想知道是否有可能用这种方法来测试摩卡咖啡?当您的服务器完成工作并尝试测试请求-响应功能时。

我找到了一个解决方案。问题出在socket.io和socket.io-client libs的不同版本中。它们一定是一样的。现在我有了socket.io v0.9.16和socket.io-client v0.9.16,一切正常!