2017-03-22 1 views
0

J'ai une demande de service encochée, je m'attends à une erreur d'encoche (encoche: aucune correspondance pour la demande POST) dans ce cas mais obtenir une réponse réussie. Je me demande pourquoi!Pourquoi la requête de correspondance de créneau est-elle requise lorsque le corps, l'heure et le délai ne correspondent pas?

nock(`http://localhost`, { 
       reqheaders: { 
        'Content-Type': 'application/json' 
       } 
      }) 
      .post('/') 
      .reply(201, function() { 
       return fs.readFileSync(`./data/mock-response.json`, 'utf8'); 
      }); 

et l'appel de service réel est

request(
    url: 'http://localhost/', 
    time:true, 
    timeout: 5000, 
    method: 'POST', 
    headers: { 
     Content-Type: 'application/json 
    }, 
    body: { 
     test:'test'} 

)

Am ne correspond pas à des paramètres suivants avec le corps Nock , le temps, délai d'attente encore nocks me retourne le fils droit

Répondre

0

Vous devez spécifier un body dans votre objet nock sinon nock sera juste je ntercept basé sur l'URL et le verbe.

Selon le code official nock documentation, un corps doit être spécifié pour être apparié.

Votre objet Nock ressemblerait à quelque chose comme ceci:

nock(`http://localhost`, { 
    reqheaders: { 
    'Content-Type': 'application/json' 
    } 
}) 
.post('/', { 
    test: 'test' 
}) 
.reply(201, function() { 
    return fs.readFileSync(`./data/mock-response.json`, 'utf8'); 
}); 
+0

des thats trop ma compréhension, mais tout ce que j'ai ci-dessus sans le corps me renvoie une réponse, thats ce qui me prêter à confusion. pourquoi mon exemple ne lance pas NOCK aucune correspondance trouvée erreur – binndur