2017-05-17 2 views
0

essaie de se moquer de l'api dans le test unitaire comme suit:Noeud + test: comment se moquer api en utilisant Nock

const request = require('supertest'); 
const nock = require('nock'); 
const app = require('../app'); 

const agent = request.agent(app); 
nock.disableNetConnect(); 
const userResponse = { 
    user: { 
     _id: '58828157ce4e140820e23648', 
     info: { 
     email: '[email protected]', 
     password: '1', 
     name: 'testx', 
     }, 
}; 
    it('should register new user', (done) => { 
    nock('http://localhost:5000') 
     .post('/auth/register') 
     .reply(200, userResponse); 



    agent.post('/auth/register') 
     .send({ 
     name: 'test', 
     email: '[email protected]', 
     password: '1', 
     }) 
     .expect(200) 
     .end((error, response) => { 
     expect(response.body.user.info.email).to.equal('[email protected]'); 
     expect(response.body.user.info.name).to.equal('test'); 
     done(); 
     }); 
    }).timeout(5000); 

Mais je suis obtenir cette erreur:

NetConnectNotAllowedError: Nock: Not allow net connect for "127.0.0.1:54877/auth/register"

Répondre

0

Jetez un oeil au nock documentation. nock.disableNetConnect empêche la véritable demande http, et il semble que le noeud final que vous essayez de bloquer fonctionne sur un serveur sur le port 54877, mais vous semblez essayer de bloquer un serveur fonctionnant sur le port 5000.

+1

? Je veux dire que je suis confronté au même problème dans mon cas de test besoin de télécharger quelques fichiers, mais en me donnant "NetConnectNotAllowedError: Nock: Ne pas autoriser net connect" – Siten