2017-03-04 67 views
0

爲什麼諾克給我一個錯誤,說身體不匹配?諾克 - 身體不匹配

這是我的代碼。

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(); 
    }); 

    }); 

我得到這個響應,當我使用.log

我不知道爲什麼它告訴我的身體不匹配。我明白這一點。

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"          
}                       

回答

1

有一個open issue在github上,你目前無法使用.delete(URL,數據)。

但是你可以很容易地解決這個問題是這樣的:

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 });

如果你打電話。發送(數據),而不是將數據傳遞到它工作得很好.delete方法。

+0

omg拯救生命,我今天早上準備做那件事。 :D哈哈謝謝 – user3450754