node.js - 我如何测试这个装饰器?
问题描述
这基本上是代码的模型。我尝试了一些东西,但我在测试方面是新手,所以这些线路没有被覆盖。
所以,我不知道如何访问和测试来自 createParamDecorator() 的内容。或者我如何测试标头、dto 和所有内容。我试图模拟 de ExecutionContext 值和 switchToHttp() 并将所有内容都返回 null 并通过测试。但线路没有被覆盖。
import { plainToClass } from 'class-transformer';
// The import below fails
import { ClassType } from 'class-transformer/ClassTransformer';
import { validateOrReject } from 'class-validator';
export const RequestHeader = createParamDecorator(
async (value: any, ctx: ExecutionContext) => {
// extract headers
const headers = ctx.switchToHttp().getRequest().headers;
// Convert headers to DTO object
const dto = plainToClass(value, headers, { excludeExtraneousValues: true });
// Validate
await validateOrReject(dto);
// return header dto object
return dto;
},
);
解决方案
推荐阅读
- python - 制作透明菜单按钮图像
- google-app-engine - 如何通过覆盖默认的 .gcloudignore 设置将 .env 文件上传到 gcloud
- ios - 将文本和图像保存在 AttributedString 中
- python - 如何从子文件夹中检索图像并将它们存储在另一个单独的文件夹中?
- tensorflow2.0 - Tensorflow 2.0: AttributeError: Tensor.name 在启用 Eager Execution 时毫无意义
- excel - excel最后一个空行粘贴值
- sql-server - 在子查询中聚合分组依据
- sql - 识别在 Oracle 上具有 DELETE 权限的用户
- css - 难以保持子 Divs 完全正方形
- windows - 无法远程访问 Mavic Air 内存