mongodb - 如何使用 Jest 测试 ID 是否是有效的 MongoDB 对象 ID?
问题描述
我是 javascript 新手,遇到了这个问题。在 Google 上搜索解决方案后,我意识到 StackOverflow 上没有提出这样的问题。在我想出解决方案后,我想在这里分享它以防它对某人有所帮助。
我正在构建一个待办事项列表应用程序,其中使用字段用户名(电子邮件)、密码和 DOB 创建用户。我正在使用 MongoDB 来存储用户和待办事项数据。创建用户后,他们可以使用用户名和密码登录应用程序。
当用户登录时,我需要从他们的用户名中获取他们的用户 ID。我用来获取用户 ID 的路径是 -/api/user/username/:username
我将 Jest 用于 TDD,所以我需要先为上述情况编写测试。
测试套件中不同测试用例的规范之一是:从用户名中获取 UserID 并以 MongoDB ObjectID 格式返回 userID。
如何检查返回的 userID 是否为 MongoDB ObjectID 格式?
解决方案
要使用 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();
});
推荐阅读
- python - 在 IDE 上完美运行,但行(如果 mat[j] == mat[colindex]:) 在为极客提交极客时给出索引超出范围错误
- objective-c - UIWebView 仍然存在于 Google 移动广告中
- c# - 从 C# 以半并行方式运行 python 进程
- android-studio - 转到下一页时如何将数据保存在编辑框中,再次返回,数据仍然存在?安卓工作室
- apache-kafka - 使用文档中提供的 Kafka 休息配置选项 consumer.instance.timeout.ms 的问题
- azure-machine-learning-service - “MSSQL”在打开连接时遇到了“InvalidOperationException”类型的意外异常,HResult 为“x80131509”
- angular - 如何在 Angular 中创建一个公共子组件
- postgresql - 未显示 Postgres 导入的表,手动创建时出现“已存在”错误
- html - 如何在html输入中只允许罗马数字字符?
- angular - 出现控制台错误:没有当前规范时使用了“期望”,这可能是因为异步测试超时?