繁体   English   中英

为什么在用猫鼬开玩笑时得到404而不是400?

why I'm getting 404 instead of 400 when using jest with mongoose?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想阻止没有“ URL”或“标题”的“博客”提交。

我有猫鼬模型

const blogSchema = new mongoose.Schema({
  title: {
    type: String,
    required: true,
  },
  author: String,
  url: {
    type: String,
    required: true,
  },
  likes: { type: Number, default: 0 },
});

负责处理错误的中间件

const errorHandler = (error, request, response, next) => {
  logger.error(error.message);

  if (error.name === "CastError") {
    return response.status(400).send({ error: "malformatted id" });
  } else if (error.name === "ValidationError") {
    return response.status(400).json({ error: error.message });
  }

  next(error);
};

测试是这样的

test("you can not add a post wihout a title or url", async () => {
    const blog = {
      author: "Chris Coyier",
      likes: 56,
    };
    const res = await api.post("/api/blog").send(blog);
    expect(res.status).toBe(400);
  });

使用Postman时,我得到400状态代码(这是我喜欢的状态),但是当jest进行测试时,我得到404。 我不知道我在这里想念的是什么

我不知道你是否需要它; 但是这是post方法(使用快速路由器)

blogsRouter.post("/", async (req, res, next) => {
  const blog = new Blog(req.body);

  try {
    const result = await blog.save();
    res.status(200).json(result);
  } catch (err) {
    next(err);
  }
});

问题暂未有回复.您可以查看右边的相关问题.
1 快递,猫鼬,开玩笑有时失败有时通过

我想与MonggoDB进行集成测试。 我开玩笑和猫鼬。 我的代码有时通过,有时没有通过。 我要搜索两天,然后修改代码。 但这并不能解决问题。 我目前只有两个测试文件:这是我的仓库: https : //github.com/tsulatsitamim/sia-server/tr ...

2018-07-28 09:12:45 1 40   jestjs
2 开玩笑猫鼬导致内存泄漏

更新 2020-09-14 我有一个我编写的示例测试用例。 当我运行这段代码时,测试用例通过了,但它抱怨 teordown 没有正确发生并且有一个打开的连接。 任何人都可以发现它是什么: 方法 1 - 内存泄漏 import { Connection, createConnection } fr ...

3 用开玩笑模仿猫鼬模型

我试图用jest模拟一个猫鼬模型,但是得到了Cannot create property 'constructor' on number '1'错误Cannot create property 'constructor' on number '1' 。 我能够通过使用下面显示的2个文件创建项目 ...

4 在玩笑中模拟猫鼬聚合函数

我有一个如下的中间件,我正在尝试使用 jest 进行单元测试, 中间件: 测试代码: 错误:但是当我尝试模拟聚合函数时收到以下错误。 在 findOne 的情况下,类似的过程有效,但在 mongoose 的聚合方法中失败。 任何帮助将不胜感激。 ● PhController › f ...

6 项目不存在时的猫鼬find()方法。 开玩笑超时

我的某些术语可能不正确,但请忍受... 我在Web应用程序中使用Mongoose,并且具有以下代码: 使用Jest,我想测试一个用户存在和不存在的情况。 对于每个单独的测试,都覆盖了预期的代码,但是当用户不存在时,该测试仍然会失败,因为: “测试运行一秒钟后,开玩笑并没 ...

7 开玩笑期望猫鼬时间戳

我正在使用Jest对Express / Mongoose API进行单元测试。 但是,我遇到有关期望“ _id”和时间戳字段(例如“ createdAt”和“ updatedAt”)的问题。 双方都期望匹配良好。 但是,无论我输入了Expect.any(...)(甚至everythi ...

9 开玩笑:猫鼬和Koa服务器无法关闭连接

当调用afterAll函数时,我调用服务器和猫鼬的close方法,在控制台输出中,Mongodb连接已关闭,但是当我看到连接计数时,mongo cli相同并且测试成功完成,但是节点未关闭脚本,这可能是什么问题? 之前: 关闭猫鼬连接后: 虽然我不暂停ctrl-c脚本的 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM