2017-05-25 93 views
1

我創建這個測試文件摩卡柴測試總是收到404狀態

let chai = require('chai'); 
let chaiHttp = require('chai-http'); 
let server = require('../index'); 
chai.use(chaiHttp); 

describe('Users',() => { 
    describe('/GET users',() => { 
    it('it should GET all the users', (done) => { 
     chai.request(server).get('/user/get-all-users').end((err, res) => { 
      res.should.have.status(200) 
      done() 
     }); 
    }); 
    }); 
}); 

這條路線工作得很好,但在測試運行時,我總是得到檢驗不合格404

我使用的RESTify運行我的服務器,

global.server = restify.createServer({ 
    url  : config.base_url, 
    name : config.name, 
    version : config.version, 
    log  : bunyanWinston.createAdapter(log), 
    }) 
+0

是你的服務器包含正確的服務器url? – bxN5

+0

我的網址是localhost:3000 –

+0

服務器變量在您的上下文中看起來像一個對象 show console.log(服務器) – bxN5

回答

0

我想通了

這爲m y服務器:

'use strict' 

/** 
* Module Dependencies 
*/ 
const config  = require('./config'), 
    restify  = require('restify'), 
    bunyan  = require('bunyan'), 
    winston  = require('winston'), 
    bunyanWinston = require('bunyan-winston-adapter'), 
    mongoose  = require('mongoose') 

/** 
* Logging 
*/ 
global.log = new winston.Logger({ 
    transports: [ 
    new winston.transports.Console({ 
     level: 'info', 
     timestamp:() => { 
     return new Date().toString() 
     }, 
     json: true 
    }), 
    ] 
}) 

/** 
* Initialize Server 
*/ 
global.server = restify.createServer({ 
    url  : config.base_url, 
    name : config.name, 
    version : config.version, 
    log  : bunyanWinston.createAdapter(log), 
}) 

/** 
* Middleware 
*/ 
server.use(restify.jsonBodyParser({ mapParams: true })) 
server.use(restify.acceptParser(server.acceptable)) 
server.use(restify.queryParser({ mapParams: true })) 
server.use(restify.fullResponse()) 


/** 
* Error Handling 
*/ 
server.on('uncaughtException', (req, res, route, err) => { 
    log.error(err.stack) 
    res.send(err) 
}); 

/** 
* Lift Server, Connect to DB & Bind Routes 
*/ 
server.listen(config.port, 'localhost', function() { 

    mongoose.connection.on('error', function(err) { 
    log.error('Mongoose default connection error: ' + err) 
    process.exit(1) 
    }) 

    mongoose.connection.on('open', function(err) { 

    if (err) { 
     log.error('Mongoose default connection error: ' + err) 
     process.exit(1) 
    } 

    log.info(
     '%s v%s ready to accept connections on port %s in %s environment. %s', 
     server.name, 
     config.version, 
     config.port, 
     config.env, 
     server.url 
    ) 

    require('./api/routes/') 

    }) 

    global.db = mongoose.connect(config.db.uri) 

}) 

module.exports = server 

我在回調監聽函數中需要路由文件。這種方式的路線工作,但柴無法找到路線。只需從回調中刪除路線並將其放在我的index.js上,它就可以正常工作。