2015-12-31 63 views
4

我不能爲我的生活得到諾克工作與一個簡單的superagent post請求。這是我的superagent和nock配置。嘲笑superagent post請求與諾克不匹配

的SuperAgent:

request 
    .post('https://test.com/api/login') 
    .send({ 
    email: '[email protected]', 
    password: 'testpassword' 
    }) 
    .end((err, res) => { 
    if (err) { 
     console.log(err); 
    } 
    }); 

諾克:

nock('https://test.com') 
    .post('/api/login') 
    .send({ 
    email: '[email protected]', 
    password: 'testpassword' 
    }) 
    .reply(200, { 
    id: 1, 
    token: 'abc' 
    }); 

我是從箭尾接收以下錯誤:

{ [Error: Nock: No match for request POST https://test.com/api/login {"email":"[email protected]","password":"testpassword"}] status: 404, statusCode: 404, response: undefined }

另一個怪異方面​​是正被記錄在此錯誤我的超級反應處理程序。所以我知道這個電話正在被截取。

回答

10

好的 - 計算出來。在深入瞭解文檔之後,我找到了.log函數。我鏈接我的諾克配置像這樣

nock('https://test.com') 
    .log(console.log)... 

事實證明,請求的身體不匹配。

+1

真正有用不起作用! –

+0

節省了大量的時間 – Shaolin

+0

看起來nock的界面已經改變(與帖子相關)。您不需要將調用鏈接到「.post(」/ api「)。send({..})」,您現在似乎需要執行「.post(」/ api「,{..})」。希望這有助於 - 我使用nock v8。 – RichS

0

.send()由URL本身和.log後發送後身體作爲第二PARAM替換之前.reply