0

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')、テストが失敗します。

4

1 に答える 1