如何在 mocha nodejs 中使用 passport js 对我的 facebook 登录进行单元测试?

How can I unit test my facebook login using passport js in mocha nodejs?

我是单元测试的新手。我一直在为 Nodejs 使用 mocha 编写测试用例。在我的例子中,需要为 facebook 登录编写测试用例。我首先尝试使用 facebook-mock 但我无法完成 task.This 是我使用 zombie,

的测试用例
var chai = require('chai');    
var assert = chai.assert;    
var server;    
var Browser = require('zombie');    
describe("login using social sites",function () {
  this.timeout(40000);
  beforeEach(function () {
    server = require('../../../server').server;
    browser = new Browser({ site: 'http://localhost:3000' });
  });
        it("should login with facebook",function (done) {

        browser.visit('/auth/facebook',function (err,brw) {

            if(err){
                throw err;
            }

            assert.equal(brw.location.pathname, '/auth/facebook/callback');

            done();

        });



    });


    afterEach(function () {
        server.close();
    });

});

server.js 文件是,

var express = require('./config/express');

var app = express();

var server = app.listen(3000, function () {
    var port = server.address().port;
    console.log('Server running at %s', port);
});

module.exports = {
    app : app,
    server : server
};

这是我在执行单元测试后得到的错误,

 1) login using social sites should login with facebook:
     Uncaught TypeError: connect ECONNREFUSED 127.0.0.1:3000
      at G:\Janani\Tasks\CCSProject\node_modules\zombie\lib\pipeline.js:89:15
      at tryCatcher (G:\Janani\Tasks\CCSProject\node_modules\zombie\node_modules\bluebird\js\release\util.js:16:23)
      at Promise._settlePromiseFromHandler (G:\Janani\Tasks\CCSProject\node_modules\zombie\node_modules\bluebird\js\release\promise.js:504:31)
      at Promise._settlePromise (G:\Janani\Tasks\CCSProject\node_modules\zombie\node_modules\bluebird\js\release\promise.js:561:18)
      at Promise._settlePromise0 (G:\Janani\Tasks\CCSProject\node_modules\zombie\node_modules\bluebird\js\release\promise.js:606:10)
      at Promise._settlePromises (G:\Janani\Tasks\CCSProject\node_modules\zombie\node_modules\bluebird\js\release\promise.js:681:18)
      at Async._drainQueue (G:\Janani\Tasks\CCSProject\node_modules\zombie\node_modules\bluebird\js\release\async.js:138:16)
      at Async._drainQueues (G:\Janani\Tasks\CCSProject\node_modules\zombie\node_modules\bluebird\js\release\async.js:148:10)
      at Immediate.Async.drainQueues [as _onImmediate] (G:\Janani\Tasks\CCSProject\node_modules\zombie\node_modules\bluebird\js\release\async.js:17:14)

请任何人指导我解决这个问题。如果有任何其他特定框架可用,请指导我。 提前致谢!!

我已经解决了这个问题!!!

describe("login using social sites",function () {

    this.timeout(40000);


    beforeEach(function () {
        server = require('../../../server').server;

        // browser = new Browser({ site: 'http://localhost:3000' });



    });


    it("should login with facebook",function (done) {

        Browser.visit('http://127.0.0.1:3000/auth/facebook',function (err,brw) {

            if(err){
                throw err;
            }

            brw.fill('email','aaa@gmail.com').fill('pass', 'password')
                .pressButton('login', function (err,brow) {
                    brw.assert.success();
                    done();
                });

        });



    });


    afterEach(function () {
        server.close();
    });

});