2017-03-04 1 views
0

Pourquoi Nock me fait-il une erreur en disant que les corps ne correspondent pas ??Nock - Les corps ne correspondent pas

Voici mon code.

it('Should Delete /user/removeuserskills', function(done){ 

    mockRequest 
    .delete('/user/removeuserskills',{skill:'accountant'}) 
    .reply(201,{ 
     'status':200, 
     'message': '200: Successfully deleted skill' 
     }) 
    .log(console.log) 
    request 
    .delete('/user/removeuserskills',{skill:'accountant'}) 
    .end(function(err, res){ 
     if(err){ 
     console.log(err); 
     } 
     else{ 
     expect(res.body.status).to.equal(200); 
     expect(res.body.message).to.equal('200: Successfully deleted skill');} 
     done(); 
    }); 

    }); 

-je obtenir cette réponse quand j'utilise le .log

Je n'ai aucune idée pourquoi il me dit corps les dont correspondance. Je reçois ceci spécifiquement.

matching http://localhost:8080 to DELETE http://localhost:8080/user/removeuserskills: true 
bodies don't match:                   
{ skill: 'accountant' }                 

{ Error: Nock: No match for request {              
    "method": "DELETE",                  
    "url": "http://localhost:8080/user/removeuserskills"          
}                       

Répondre

1

Il y a un open issue à github que vous n'êtes pas actuellement en mesure d'utiliser .delete (url, données).

Mais vous pouvez le fixer facilement comme ceci:

mockRequest 
 
\t .delete('/user/removeuserskills', {skill: 'accountant'}) 
 
\t .reply(201, { 
 
\t \t 'status': 200, 
 
\t \t 'message': '200: Successfully deleted skill' 
 
\t }) 
 
\t .log(console.log) 
 

 
request 
 
\t .delete('/user/removeuserskills') 
 
\t //Just call .send here instead 
 
\t .send({skill: 'accountant'}) 
 
\t .end(function (err, res) { 
 
\t \t ... 
 
\t \t done(); 
 
\t });

Si vous appelez .send (données) au lieu de transmettre des données en méthode .delete cela fonctionne très bien.

+0

omg épargnant de vie, j'allais faire exactement cela, ce matin. : D haha ​​merci – user3450754