(品質保証コース・課題トラッカー)put リクエストのテストが通らないのはなぜでしょうか?

アドバイスに感謝します!

d._idの部分を修正したところ,すべてのテストにパスすることが出来ました.

こちらの投稿は私もヒットしていたのですが,理解力不足で,自分の問題とは関係ないものと思っていました.

原因

d._idreq.query._idの型の不一致による,_idを用いたGETリクエストの失敗

d._idはObjectId型,req.query._idは文字列型でした.
そして,FCCによるPUTリクエストのテストでは,PUTリクエスト後,_idを用いたGETリクエストによって_idを取得し,さらなるテストを行っていました(型チェックやupdated_onの更新チェック).私のローカルでのテストコードではupdate処理を行い,その戻り値のオブジェクトから_idを取得していたため,テストをパスしてしまっており,ここに見落としの原因がありました.

解決策

d._idd._id.toString()に変更する

d._id.toString()とすることで文字列型同士比較することが可能になり,正しいGETリクエストを実装することが出来ました.

2 Likes