node.js API のテストを作成しようとしていますが、プロパティをテストしようとしたときに問題が発生しました。私のアプリケーションはマングースを使用しています。以下を使用してmongodbからデータを選択しています:
User.findById(req.params.id).select('-refresh_token -password -_id');
クエリからの応答は次のとおりです。
{
login: 'asd',
email: 'asd@example.com',
role: 'user',
__v: 0
}
私のテストファイルでは、mocha と chai を使用して統合テストを作成し、次のような構造のテストを作成しています。
let response = await UsersController.getUser(req);
console.log(response._id);
expect(response).to.be.a('object');
expect(response).to.have.property('_id');
UsersController.getUser(req)クエリの結果を返すので、プロパティがないことが予想され_idます。コンソールログを取得しようとすると、ログが表示されますundefinedが、テストは問題なくパスします。_id応答全体をコンソール ログに記録すると、 (予想どおり) プロパティがないように見えます。
確かに応答に含まれていない別のプロパティ (たとえば、プロパティasdasdas) をテストすると、テストは失敗します。
編集
追加するとexpect(response).to.not.have.property('_id')、テストが失敗します。