私はmochaをテストフレームワークとして使用していますが、fetchを使用してDELETE
要求をモックアップしようとしていますが、HTTPステータスコード204
を返します。あなたはlog()
とisDone()
矢筈法により述べたように、要求が適切に傍受されて見ることができるようにNockは要求を傍受しますが空のオブジェクトを返します
matching <domain> to DELETE <domain>/<path>: true
(the above line being generated by the .log method in nock)
IS DONE?---> true
RESPONSE---> {}
、:ここで
は、テストコードです:
it('should logout user', (done) => {
nock(<domain>)
.log(console.log)
.delete(path)
.reply(204, {
status: 204,
message: 'This is a mocked response',
});
api.logout(token)
.then((response) => {
console.log('IS DONE?--->', nock.isDone());
console.log('RESPONSE--->', response);
done();
})
.catch((error) => {
console.log('ERROR--->', error);
});
});
これは次の出力を返します。しかし、返されたresponse
オブジェクトは空のオブジェクトなので、返されたHTTPステータスコード(この例では204
)についてアサーションを行うことはできません
私はここで何が不足しているか考えていますか?reply()
メソッドが空のオブジェクトを返すのはなぜですか?ここ
UPDATE
はremove
方法がDELETE
HTTPメソッドを使用してfetch
要求のラッパーであり、logout
メソッドのコードです。
logout(token) {
return remove(
this.host,
END_POINTS.DELETE_TOKEN,
{
pathParams: { token },
},
{
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
},
);
}
'api.logout'のコードは何ですか?それは 'ノック 'によって提供されるものではないようです。そこには誤りがあるかもしれないと私には思われます。 – Louis
エンドポイントの 'DELETE'HTTPメソッドを表します。これは正常に動作し、出力に示されているように正しく傍受されているように見えます。コードを含めるように質問を更新しました。混乱を避ける。 – rfc1484