首页 > 解决方案 > 如何使用 Jest 测试 ID 是否是有效的 MongoDB 对象 ID?

问题描述

我是 javascript 新手,遇到了这个问题。在 Google 上搜索解决方案后,我意识到 StackOverflow 上没有提出这样的问题。在我想出解决方案后,我想在这里分享它以防它对某人有所帮助。

我正在构建一个待办事项列表应用程序,其中使用字段用户名(电子邮件)、密码和 DOB 创建用户。我正在使用 MongoDB 来存储用户和待办事项数据。创建用户后,他们可以使用用户名和密码登录应用程序。

当用户登录时,我需要从他们的用户名中获取他们的用户 ID。我用来获取用户 ID 的路径是 -/api/user/username/:username我将 Jest 用于 TDD,所以我需要先为上述情况编写测试。

测试套件中不同测试用例的规范之一是:从用户名中获取 UserID 并以 MongoDB ObjectID 格式返回 userID。

如何检查返回的 userID 是否为 MongoDB ObjectID 格式?

标签: mongodbjestjstddobjectid

解决方案


要使用 Jest 检查用户 ID 是否是有效的 MongoDB ObjectID,可以使用

expect(ObjectID.isvalid(userID)).toBeTruthy();

一个例子如下:

it(`must get userID when username is in valid email format & available in db and return userID in mongoDB ObjectID format`, async (done) => {
   const response = await request(app)
      .get(`/api/user/username/${username}`)
      .set({ "x-token-header": jwtToken })
      .send();
   const { body } = response;
   expect(ObjectID.isValid(body)).toBeTruthy();
   done();
});

推荐阅读