小编Arc*_*ezo的帖子

如何正确地对 Joi Schemas 验证进行单元测试?

我创建了一个在我的路由中调用的 Joi 验证模式。但是,当我运行代码覆盖率时,该文件没有被覆盖。所以,我正在尝试为其编写一个测试。

验证器.js

    const Joi = require('joi');
    module.exports = {
    validateExternalId: (schema, name) => {
    return (req, res, next) => {
      const result = Joi.validate({ param: req.params[name] }, schema);
      if (result.error) {
        return res.status(400).send(result.error.details[0].message);
      }
      next();
    };
  },
schemas: {
    idSchema: Joi.object().keys({
      param: Joi.string().regex(/^[a-zA-Z0-9]{20}$/).required()
    })
  }
};
Run Code Online (Sandbox Code Playgroud)

验证器.test.js

const { validateExternalId, schemas } = require('../../src/helpers/validation');
const app = require('../../src/router')

const mockResponse = () => {
  const res = {};
  res.status = jest.fn().mockReturnValue(res);
  res.json = jest.fn().mockReturnValue(res);
  return res;
};

describe('Testing …
Run Code Online (Sandbox Code Playgroud)

unit-testing node.js supertest jestjs joi

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

jestjs ×1

joi ×1

node.js ×1

supertest ×1

unit-testing ×1